From 5af84a058cc84b197cd71aadfb14a86d36338ba5 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Tue, 2 Jul 2024 11:46:08 -0400 Subject: [PATCH 01/68] Update README.md (#17965) --- ping_one/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ping_one/README.md b/ping_one/README.md index 668cb718290ec..1027840cdd3d3 100644 --- a/ping_one/README.md +++ b/ping_one/README.md @@ -13,11 +13,11 @@ No additional installation is needed on your server. ### Configuration -1. +1. List of steps to configure this integration ### Validation - +Steps to validate integration is functioning as expected ## Data Collected @@ -39,4 +39,4 @@ Need help? Contact [Datadog support][3]. [1]: **LINK_TO_INTEGRATION_SITE** [2]: https://app.datadoghq.com/account/settings#agent -[3]: https://docs.datadoghq.com/help/ \ No newline at end of file +[3]: https://docs.datadoghq.com/help/ From 91d3d11b0fe7b9dbfb7e9a6fccee18969898cca8 Mon Sep 17 00:00:00 2001 From: dkirov-dd <166512750+dkirov-dd@users.noreply.github.com> Date: Tue, 2 Jul 2024 18:06:14 +0200 Subject: [PATCH 02/68] update mirror endpoint for kerberos tests (#17964) * update mirror endpoint * add comment --- .../tests/compose/kerberos/kerberos-kdc/Dockerfile | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/datadog_checks_base/tests/compose/kerberos/kerberos-kdc/Dockerfile b/datadog_checks_base/tests/compose/kerberos/kerberos-kdc/Dockerfile index 1c44f263bb6a9..91c58d385d777 100644 --- a/datadog_checks_base/tests/compose/kerberos/kerberos-kdc/Dockerfile +++ b/datadog_checks_base/tests/compose/kerberos/kerberos-kdc/Dockerfile @@ -3,9 +3,17 @@ FROM centos:centos7 # https://github.com/edseymour/kinit-sidecar/blob/master/example-server/Dockerfile # install kdc and kadmin + +# mirrorlist.contos.org does not exits anymore, the below stack exchange post suggests a workaround +# https://serverfault.com/questions/1161816/mirrorlist-centos-org-no-longer-resolve + +RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo && \ + sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo && \ + sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo + RUN yum install -y krb5-server krb5-workstation && yum clean all RUN mkdir -p /var/kerberos/krb5kdc.d && \ - mkdir -p /etc/krb5.conf.d + mkdir -p /etc/krb5.conf.d ADD init.sh / ADD kdc.conf /var/kerberos/krb5kdc/ @@ -21,4 +29,5 @@ RUN sed -i 's|kerberos-adm\ *749/tcp|kerberos-adm\ \ \ \ 8749/tcp|g' /etc/servic VOLUME ["/var/kerberos/krb5kdc","/var/kerberos/krb5kdc.d", "/etc/krb5.conf.d" , "/dev/shm" ] EXPOSE 8888 8464 8749 -ENTRYPOINT ["/init.sh"] \ No newline at end of file +ENTRYPOINT ["/init.sh"] + From 33f85ccedaf494b65ba394cc5f89e8aa769a3177 Mon Sep 17 00:00:00 2001 From: "datadog-agent-integrations-bot[bot]" <159767151+datadog-agent-integrations-bot[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2024 18:12:30 +0200 Subject: [PATCH 03/68] Update dependencies (#17953) --------- Co-authored-by: iliakur <899591+iliakur@users.noreply.github.com> Co-authored-by: Ilia Kurenkov --- LICENSE-3rdparty.csv | 1 + agent_requirements.in | 16 ++++++++-------- amazon_msk/changelog.d/17953.added | 1 + amazon_msk/pyproject.toml | 2 +- datadog_checks_base/changelog.d/17953.added | 1 + datadog_checks_base/pyproject.toml | 8 ++++---- esxi/changelog.d/17953.added | 1 + esxi/pyproject.toml | 4 ++-- mongo/changelog.d/17953.added | 1 + mongo/pyproject.toml | 2 +- postgres/changelog.d/17953.added | 1 + postgres/pyproject.toml | 2 +- redisdb/changelog.d/17953.added | 1 + redisdb/pyproject.toml | 2 +- vsphere/changelog.d/17953.added | 1 + vsphere/pyproject.toml | 2 +- 16 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 amazon_msk/changelog.d/17953.added create mode 100644 datadog_checks_base/changelog.d/17953.added create mode 100644 esxi/changelog.d/17953.added create mode 100644 mongo/changelog.d/17953.added create mode 100644 postgres/changelog.d/17953.added create mode 100644 redisdb/changelog.d/17953.added create mode 100644 vsphere/changelog.d/17953.added diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 8fd74b6e9ac9e..5d68436788dd2 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -82,6 +82,7 @@ python-dateutil,PyPI,Apache-2.0,Copyright 2017- Paul Ganssle python-dateutil,PyPI,BSD-3-Clause,Copyright 2017- Paul Ganssle python3-gearman,PyPI,Apache-2.0, pyvmomi,PyPI,Apache-2.0,"Copyright (c) 2005-2021 VMware, Inc. All Rights Reserved." +pyvmomi,PyPI,Apache-2.0,Copyright (c) 2005-2024 Broadcom. All Rights Reserved. pywin32,PyPI,PSF,Copyright 2002-2003 by Blackdog Software Pty Ltd. redis,PyPI,MIT,"Copyright (c) 2022-2023, Redis, inc." redis,PyPI,MIT,Copyright (c) 2012 Andy McCurdy diff --git a/agent_requirements.in b/agent_requirements.in index d3cf37d7aca57..84187a5a994fe 100644 --- a/agent_requirements.in +++ b/agent_requirements.in @@ -6,10 +6,10 @@ beautifulsoup4==4.12.3; python_version > '3.0' beautifulsoup4==4.9.3; python_version < '3.0' binary==1.0.0 boto3==1.17.112; python_version < '3.0' -boto3==1.34.131; python_version > '3.0' +boto3==1.34.136; python_version > '3.0' boto==2.49.0 botocore==1.20.112; python_version < '3.0' -botocore==1.34.131; python_version > '3.0' +botocore==1.34.136; python_version > '3.0' cachetools==3.1.1; python_version < '3.0' cachetools==5.3.3; python_version > '3.0' clickhouse-cityhash==1.0.2.3; python_version < '3.0' @@ -37,7 +37,7 @@ jaydebeapi==1.2.3; python_version >= '3.0' jellyfish==1.0.4; python_version > '3.0' jpype1==1.5.0; python_version > '3.0' kubernetes==18.20.0; python_version < '3.0' -kubernetes==28.1.0; python_version > '3.0' +kubernetes==30.1.0; python_version > '3.0' ldap3==2.9.1 lxml==4.9.2 lz4==2.2.1; python_version < '3.0' @@ -56,7 +56,7 @@ ply==3.11 prometheus-client==0.12.0; python_version < '3.0' prometheus-client==0.20.0; python_version > '3.0' protobuf==3.17.3; python_version < '3.0' -protobuf==5.27.1; python_version > '3.0' +protobuf==5.27.2; python_version > '3.0' psutil==5.9.0 psycopg2-binary==2.9.9; python_version > '3.0' pyasn1==0.4.6 @@ -64,7 +64,7 @@ pycryptodomex==3.20.0 pydantic==2.7.4; python_version > '3.0' pyjwt==1.7.1; python_version < '3.0' pyjwt==2.8.0; python_version > '3.0' -pymongo[srv]==4.7.3; python_version >= '3.9' +pymongo[srv]==4.8.0; python_version >= '3.9' pymqi==1.12.10; (sys_platform != 'darwin' or platform_machine != 'arm64') and python_version > '3.0' pymysql==0.10.1; python_version < '3.0' pymysql==1.1.1; python_version > '3.0' @@ -79,13 +79,13 @@ python-binary-memcached==0.31.2; sys_platform != 'win32' and python_version > '3 python-dateutil==2.9.0.post0 python3-gearman==0.1.0; sys_platform != 'win32' and python_version > '3.0' pyvmomi==8.0.0.1; python_version < '3.0' -pyvmomi==8.0.2.0.1; python_version > '3.0' +pyvmomi==8.0.3.0.1; python_version > '3.0' pywin32==228; sys_platform == 'win32' and python_version < '3.0' pywin32==306; sys_platform == 'win32' and python_version > '3.0' pyyaml==5.4.1; python_version < '3.0' pyyaml==6.0.1; python_version > '3.0' redis==3.5.3; python_version < '3.0' -redis==5.0.6; python_version > '3.0' +redis==5.0.7; python_version > '3.0' requests-kerberos==0.12.0; python_version < '3.0' requests-kerberos==0.15.0; python_version > '3.0' requests-ntlm==1.1.0; python_version < '3.0' @@ -93,7 +93,7 @@ requests-ntlm==1.3.0; python_version > '3.0' requests-oauthlib==1.3.1; python_version < '3.0' requests-oauthlib==2.0.0; python_version > '3.0' requests-toolbelt==1.0.0 -requests-unixsocket2==0.4.0; python_version > '3.0' +requests-unixsocket2==0.4.1; python_version > '3.0' requests-unixsocket==0.3.0; python_version < '3.0' requests==2.27.1; python_version < '3.0' requests==2.32.3; python_version > '3.0' diff --git a/amazon_msk/changelog.d/17953.added b/amazon_msk/changelog.d/17953.added new file mode 100644 index 0000000000000..af47fee9d6a90 --- /dev/null +++ b/amazon_msk/changelog.d/17953.added @@ -0,0 +1 @@ +Update dependencies \ No newline at end of file diff --git a/amazon_msk/pyproject.toml b/amazon_msk/pyproject.toml index b6658843d7419..0d3bf96c39fb7 100644 --- a/amazon_msk/pyproject.toml +++ b/amazon_msk/pyproject.toml @@ -40,7 +40,7 @@ license = "BSD-3-Clause" [project.optional-dependencies] deps = [ "boto3==1.17.112; python_version < '3.0'", - "boto3==1.34.131; python_version > '3.0'", + "boto3==1.34.136; python_version > '3.0'", ] [project.urls] diff --git a/datadog_checks_base/changelog.d/17953.added b/datadog_checks_base/changelog.d/17953.added new file mode 100644 index 0000000000000..af47fee9d6a90 --- /dev/null +++ b/datadog_checks_base/changelog.d/17953.added @@ -0,0 +1 @@ +Update dependencies \ No newline at end of file diff --git a/datadog_checks_base/pyproject.toml b/datadog_checks_base/pyproject.toml index b1308ff1c7a93..3ee4c3e3dea6c 100644 --- a/datadog_checks_base/pyproject.toml +++ b/datadog_checks_base/pyproject.toml @@ -54,7 +54,7 @@ deps = [ "prometheus-client==0.12.0; python_version < '3.0'", "prometheus-client==0.20.0; python_version > '3.0'", "protobuf==3.17.3; python_version < '3.0'", - "protobuf==5.27.1; python_version > '3.0'", + "protobuf==5.27.2; python_version > '3.0'", "pydantic==2.7.4; python_version > '3.0'", "python-dateutil==2.9.0.post0", "pywin32==228; sys_platform == 'win32' and python_version < '3.0'", @@ -62,7 +62,7 @@ deps = [ "pyyaml==5.4.1; python_version < '3.0'", "pyyaml==6.0.1; python_version > '3.0'", "requests-toolbelt==1.0.0", - "requests-unixsocket2==0.4.0; python_version > '3.0'", + "requests-unixsocket2==0.4.1; python_version > '3.0'", "requests-unixsocket==0.3.0; python_version < '3.0'", "requests==2.27.1; python_version < '3.0'", "requests==2.32.3; python_version > '3.0'", @@ -76,7 +76,7 @@ deps = [ http = [ "aws-requests-auth==0.4.3", "botocore==1.20.112; python_version < '3.0'", - "botocore==1.34.131; python_version > '3.0'", + "botocore==1.34.136; python_version > '3.0'", "oauthlib==3.1.0; python_version < '3.0'", "oauthlib==3.2.2; python_version > '3.0'", "pyjwt==1.7.1; python_version < '3.0'", @@ -96,7 +96,7 @@ json = [ ] kube = [ "kubernetes==18.20.0; python_version < '3.0'", - "kubernetes==28.1.0; python_version > '3.0'", + "kubernetes==30.1.0; python_version > '3.0'", "requests-oauthlib==1.3.1; python_version < '3.0'", "requests-oauthlib==2.0.0; python_version > '3.0'", ] diff --git a/esxi/changelog.d/17953.added b/esxi/changelog.d/17953.added new file mode 100644 index 0000000000000..af47fee9d6a90 --- /dev/null +++ b/esxi/changelog.d/17953.added @@ -0,0 +1 @@ +Update dependencies \ No newline at end of file diff --git a/esxi/pyproject.toml b/esxi/pyproject.toml index 44e8ef37d3577..c2b91effe4c3a 100644 --- a/esxi/pyproject.toml +++ b/esxi/pyproject.toml @@ -37,8 +37,8 @@ dynamic = [ [project.optional-dependencies] deps = [ - "pyvmomi==8.0.2.0.1; python_version > '3.0'", - "pysocks==1.7.1" + "pysocks==1.7.1", + "pyvmomi==8.0.3.0.1; python_version > '3.0'", ] [project.urls] diff --git a/mongo/changelog.d/17953.added b/mongo/changelog.d/17953.added new file mode 100644 index 0000000000000..af47fee9d6a90 --- /dev/null +++ b/mongo/changelog.d/17953.added @@ -0,0 +1 @@ +Update dependencies \ No newline at end of file diff --git a/mongo/pyproject.toml b/mongo/pyproject.toml index d84391848fd67..23fe597c2abdd 100644 --- a/mongo/pyproject.toml +++ b/mongo/pyproject.toml @@ -38,7 +38,7 @@ license = "BSD-3-Clause" [project.optional-dependencies] deps = [ - "pymongo[srv]==4.7.3; python_version >= '3.9'", + "pymongo[srv]==4.8.0; python_version >= '3.9'", ] [project.urls] diff --git a/postgres/changelog.d/17953.added b/postgres/changelog.d/17953.added new file mode 100644 index 0000000000000..af47fee9d6a90 --- /dev/null +++ b/postgres/changelog.d/17953.added @@ -0,0 +1 @@ +Update dependencies \ No newline at end of file diff --git a/postgres/pyproject.toml b/postgres/pyproject.toml index ba488aa3204ee..d6b45b26901f9 100644 --- a/postgres/pyproject.toml +++ b/postgres/pyproject.toml @@ -39,7 +39,7 @@ license = "BSD-3-Clause" deps = [ "azure-identity==1.17.1; python_version > '3.0'", "boto3==1.17.112; python_version < '3.0'", - "boto3==1.34.131; python_version > '3.0'", + "boto3==1.34.136; python_version > '3.0'", "cachetools==3.1.1; python_version < '3.0'", "cachetools==5.3.3; python_version > '3.0'", "psycopg2-binary==2.9.9; python_version > '3.0'", diff --git a/redisdb/changelog.d/17953.added b/redisdb/changelog.d/17953.added new file mode 100644 index 0000000000000..af47fee9d6a90 --- /dev/null +++ b/redisdb/changelog.d/17953.added @@ -0,0 +1 @@ +Update dependencies \ No newline at end of file diff --git a/redisdb/pyproject.toml b/redisdb/pyproject.toml index 249c0b48214e0..fc09184dc28af 100644 --- a/redisdb/pyproject.toml +++ b/redisdb/pyproject.toml @@ -40,7 +40,7 @@ license = "BSD-3-Clause" [project.optional-dependencies] deps = [ "redis==3.5.3; python_version < '3.0'", - "redis==5.0.6; python_version > '3.0'", + "redis==5.0.7; python_version > '3.0'", ] [project.urls] diff --git a/vsphere/changelog.d/17953.added b/vsphere/changelog.d/17953.added new file mode 100644 index 0000000000000..af47fee9d6a90 --- /dev/null +++ b/vsphere/changelog.d/17953.added @@ -0,0 +1 @@ +Update dependencies \ No newline at end of file diff --git a/vsphere/pyproject.toml b/vsphere/pyproject.toml index 9605eec1d1d19..8726007cd4fa0 100644 --- a/vsphere/pyproject.toml +++ b/vsphere/pyproject.toml @@ -41,7 +41,7 @@ license = "BSD-3-Clause" deps = [ "futures==3.4.0; python_version < '3.0'", "pyvmomi==8.0.0.1; python_version < '3.0'", - "pyvmomi==8.0.2.0.1; python_version > '3.0'", + "pyvmomi==8.0.3.0.1; python_version > '3.0'", ] [project.urls] From a0b3b4c40e2116068a17a20093f382243c98f8cb Mon Sep 17 00:00:00 2001 From: Danny Park Date: Tue, 2 Jul 2024 16:45:34 -0400 Subject: [PATCH 04/68] [dbm] remove alpha label for settings collection (#17970) * [dbm] remove alpha label for pg_settings * [dbm] remove alpha label for mysql and sqlserver settings --- mysql/assets/configuration/spec.yaml | 54 +++++++++---------- .../mysql/data/conf.yaml.example | 28 +++++----- postgres/assets/configuration/spec.yaml | 8 +-- .../postgres/data/conf.yaml.example | 8 +-- sqlserver/assets/configuration/spec.yaml | 14 ++--- .../sqlserver/data/conf.yaml.example | 12 ++--- 6 files changed, 62 insertions(+), 62 deletions(-) diff --git a/mysql/assets/configuration/spec.yaml b/mysql/assets/configuration/spec.yaml index 55386d67ffaf0..f2a4809ae33b0 100644 --- a/mysql/assets/configuration/spec.yaml +++ b/mysql/assets/configuration/spec.yaml @@ -270,7 +270,7 @@ files: Note that this runs a heavy query against your database to compute the relevant metrics for all your existing schemas. Due to the nature of these calls, if you have a high number of tables and schemas, this may have a negative impact on your database performance. - Only tables and schemas for which the user has been granted SELECT privileges are collected. + Only tables and schemas for which the user has been granted SELECT privileges are collected. See also the MySQL metrics listing: https://docs.datadoghq.com/integrations/mysql/#metrics value: @@ -346,7 +346,7 @@ files: example: false display_default: false - name: collect_settings - description: Configure collection of performance_schema.global_variables. This is an alpha feature. + description: Configure collection of performance_schema.global_variables. options: - name: enabled description: | @@ -490,20 +490,20 @@ files: example: 10 - name: aws description: | - This block defines the configuration for AWS RDS and Aurora instances. - - Complete this section if you have installed the Datadog AWS Integration - (https://docs.datadoghq.com/integrations/amazon_web_services) to enrich instances + This block defines the configuration for AWS RDS and Aurora instances. + + Complete this section if you have installed the Datadog AWS Integration + (https://docs.datadoghq.com/integrations/amazon_web_services) to enrich instances with MySQL integration telemetry. - + These values are only applied when `dbm: true` option is set. options: - name: instance_endpoint description: | - Equal to the Endpoint.Address of the instance the agent is connecting to. + Equal to the Endpoint.Address of the instance the agent is connecting to. This value is optional if the value of `host` is already configured to the instance endpoint. - - For more information on instance endpoints, + + For more information on instance endpoints, see the AWS docs https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Endpoint.html value: type: string @@ -512,17 +512,17 @@ files: - name: gcp description: | This block defines the configuration for Google Cloud SQL instances. - - Complete this section if you have installed the Datadog GCP Integration - (https://docs.datadoghq.com/integrations/google_cloud_platform) to enrich instances + + Complete this section if you have installed the Datadog GCP Integration + (https://docs.datadoghq.com/integrations/google_cloud_platform) to enrich instances with MySQL integration telemetry. - + These values are only applied when `dbm: true` option is set. options: - name: project_id description: | Equal to the GCP resource's project ID. - + For more information on project IDs, See the GCP docs https://cloud.google.com/resource-manager/docs/creating-managing-projects value: @@ -531,7 +531,7 @@ files: - name: instance_id description: | Equal to the GCP resource's instance ID. - + For more information on instance IDs, See the GCP docs https://cloud.google.com/sql/docs/mysql/instance-settings#instance-id-2ndgen value: @@ -541,23 +541,23 @@ files: - name: azure description: | This block defines the configuration for Azure Database for MySQL. - - Complete this section if you have installed the Datadog Azure Integration - (https://docs.datadoghq.com/integrations/azure) to enrich instances + + Complete this section if you have installed the Datadog Azure Integration + (https://docs.datadoghq.com/integrations/azure) to enrich instances with MySQL integration telemetry. - + These values are only applied when `dbm: true` option is set. options: - name: deployment_type description: | - Equal to the deployment type for the managed database. - + Equal to the deployment type for the managed database. + Acceptable values are: - - `flexible_server` + - `flexible_server` - `single_server` - `virtual_machine` - - For more information on deployment types, + + For more information on deployment types, see the Azure docs https://docs.microsoft.com/en-us/azure/mysql/select-right-deployment-type value: type: string @@ -565,7 +565,7 @@ files: - name: fully_qualified_domain_name description: | Equal to the full qualified domain name of the Azure MySQL database. - + This value is optional if the value of `host` is already configured to the fully qualified domain name. value: type: string @@ -698,7 +698,7 @@ files: hidden: true description: | Set the database instance collection interval (in seconds). The database instance collection sends - basic information about the database instance along with a signal that it still exists. + basic information about the database instance along with a signal that it still exists. This collection does not involve any additional queries to the database. value: type: number diff --git a/mysql/datadog_checks/mysql/data/conf.yaml.example b/mysql/datadog_checks/mysql/data/conf.yaml.example index 1e1f10cca7a70..6ab6808600691 100644 --- a/mysql/datadog_checks/mysql/data/conf.yaml.example +++ b/mysql/datadog_checks/mysql/data/conf.yaml.example @@ -287,7 +287,7 @@ instances: ## Note that this runs a heavy query against your database to compute the relevant metrics ## for all your existing schemas. Due to the nature of these calls, if you have a ## high number of tables and schemas, this may have a negative impact on your database performance. - ## Only tables and schemas for which the user has been granted SELECT privileges are collected. + ## Only tables and schemas for which the user has been granted SELECT privileges are collected. ## ## See also the MySQL metrics listing: https://docs.datadoghq.com/integrations/mysql/#metrics # @@ -350,7 +350,7 @@ instances: # # dbm: false - ## Configure collection of performance_schema.global_variables. This is an alpha feature. + ## Configure collection of performance_schema.global_variables. # # collect_settings: @@ -478,10 +478,10 @@ instances: # # collection_interval: 10 - ## This block defines the configuration for AWS RDS and Aurora instances. + ## This block defines the configuration for AWS RDS and Aurora instances. ## - ## Complete this section if you have installed the Datadog AWS Integration - ## (https://docs.datadoghq.com/integrations/amazon_web_services) to enrich instances + ## Complete this section if you have installed the Datadog AWS Integration + ## (https://docs.datadoghq.com/integrations/amazon_web_services) to enrich instances ## with MySQL integration telemetry. ## ## These values are only applied when `dbm: true` option is set. @@ -489,18 +489,18 @@ instances: # aws: ## @param instance_endpoint - string - optional - default: mydb.cfxgae8cilcf.us-east-1.rds.amazonaws.com - ## Equal to the Endpoint.Address of the instance the agent is connecting to. + ## Equal to the Endpoint.Address of the instance the agent is connecting to. ## This value is optional if the value of `host` is already configured to the instance endpoint. ## - ## For more information on instance endpoints, + ## For more information on instance endpoints, ## see the AWS docs https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Endpoint.html # # instance_endpoint: mydb.cfxgae8cilcf.us-east-1.rds.amazonaws.com ## This block defines the configuration for Google Cloud SQL instances. ## - ## Complete this section if you have installed the Datadog GCP Integration - ## (https://docs.datadoghq.com/integrations/google_cloud_platform) to enrich instances + ## Complete this section if you have installed the Datadog GCP Integration + ## (https://docs.datadoghq.com/integrations/google_cloud_platform) to enrich instances ## with MySQL integration telemetry. ## ## These values are only applied when `dbm: true` option is set. @@ -525,8 +525,8 @@ instances: ## This block defines the configuration for Azure Database for MySQL. ## - ## Complete this section if you have installed the Datadog Azure Integration - ## (https://docs.datadoghq.com/integrations/azure) to enrich instances + ## Complete this section if you have installed the Datadog Azure Integration + ## (https://docs.datadoghq.com/integrations/azure) to enrich instances ## with MySQL integration telemetry. ## ## These values are only applied when `dbm: true` option is set. @@ -534,14 +534,14 @@ instances: # azure: ## @param deployment_type - string - optional - default: flexible_server - ## Equal to the deployment type for the managed database. + ## Equal to the deployment type for the managed database. ## ## Acceptable values are: - ## - `flexible_server` + ## - `flexible_server` ## - `single_server` ## - `virtual_machine` ## - ## For more information on deployment types, + ## For more information on deployment types, ## see the Azure docs https://docs.microsoft.com/en-us/azure/mysql/select-right-deployment-type # # deployment_type: flexible_server diff --git a/postgres/assets/configuration/spec.yaml b/postgres/assets/configuration/spec.yaml index 0f8727b6441e8..fdbd5920728e1 100644 --- a/postgres/assets/configuration/spec.yaml +++ b/postgres/assets/configuration/spec.yaml @@ -7,7 +7,7 @@ files: - name: propagate_agent_tags description: | Set to `true` to propagate the tags from `datadog.yaml` to the check. - When set to `true`, the tags from `datadog.yaml` are added to the check's tags for all instances. + When set to `true`, the tags from `datadog.yaml` are added to the check's tags for all instances. value: example: false type: boolean @@ -275,7 +275,7 @@ files: - name: collect_wal_metrics description: | Collect metrics about WAL file age. - NOTE: + NOTE: For Postgres 9.6 and below, you must run the check local to your database if you want to enable this option. Starting Postgres 10, WAL file metrics are enabled by default using `pg_ls_waldir` and don't need local access. value: @@ -527,7 +527,7 @@ files: type: number example: 3500 - name: collect_settings - description: Configure collection of pg_settings. This is an alpha feature. + description: Configure collection of pg_settings. options: - name: enabled description: | @@ -544,7 +544,7 @@ files: example: 600 - name: ignored_settings_patterns description: | - A list of setting patterns to ignore. Any setting key matching one of the value in this list will + A list of setting patterns to ignore. Any setting key matching one of the value in this list will not be collected. This uses the traditional LIKE pattern-matching approach. value: type: array diff --git a/postgres/datadog_checks/postgres/data/conf.yaml.example b/postgres/datadog_checks/postgres/data/conf.yaml.example index 606b87a1fc12b..b10a31f607a7c 100644 --- a/postgres/datadog_checks/postgres/data/conf.yaml.example +++ b/postgres/datadog_checks/postgres/data/conf.yaml.example @@ -4,7 +4,7 @@ init_config: ## @param propagate_agent_tags - boolean - optional - default: false ## Set to `true` to propagate the tags from `datadog.yaml` to the check. - ## When set to `true`, the tags from `datadog.yaml` are added to the check's tags for all instances. + ## When set to `true`, the tags from `datadog.yaml` are added to the check's tags for all instances. # # propagate_agent_tags: false @@ -214,7 +214,7 @@ instances: ## @param collect_wal_metrics - boolean - optional - default: false ## Collect metrics about WAL file age. - ## NOTE: + ## NOTE: ## For Postgres 9.6 and below, you must run the check local to your database if you want to enable this option. ## Starting Postgres 10, WAL file metrics are enabled by default using `pg_ls_waldir` and don't need local access. # @@ -405,7 +405,7 @@ instances: # # payload_row_limit: 3500 - ## Configure collection of pg_settings. This is an alpha feature. + ## Configure collection of pg_settings. # # collect_settings: @@ -421,7 +421,7 @@ instances: # collection_interval: 600 ## @param ignored_settings_patterns - list of strings - optional - ## A list of setting patterns to ignore. Any setting key matching one of the value in this list will + ## A list of setting patterns to ignore. Any setting key matching one of the value in this list will ## not be collected. This uses the traditional LIKE pattern-matching approach. # # ignored_settings_patterns: diff --git a/sqlserver/assets/configuration/spec.yaml b/sqlserver/assets/configuration/spec.yaml index 01df2387bff92..1cf8f576d7e0d 100644 --- a/sqlserver/assets/configuration/spec.yaml +++ b/sqlserver/assets/configuration/spec.yaml @@ -230,10 +230,10 @@ files: example: false - name: index_usage_metrics_interval description: | - Configure the interval (in seconds) for the collection of index usage statistics from the - `sys.dm_db_index_usage_stats` DMV. + Configure the interval (in seconds) for the collection of index usage statistics from the + `sys.dm_db_index_usage_stats` DMV. Defaults to 300 seconds (5 minutes). If you intend on updating this value, it is strongly recommended - to use a consistent value throughout all SQL Server agent deployments. + to use a consistent value throughout all SQL Server agent deployments. value: type: integer example: 300 @@ -302,7 +302,7 @@ files: example: false display_default: false - name: collect_settings - description: Configure collection of sys.configurations. This is an alpha feature. + description: Configure collection of sys.configurations. options: - name: enabled description: | @@ -713,9 +713,9 @@ files: type: number example: 1800 display_default: false - - name: schemas_collection + - name: schemas_collection description: | - Configure collection of schemas. If `database_autodiscovery` is not enabled, data is collected + Configure collection of schemas. If `database_autodiscovery` is not enabled, data is collected only for the database configured with `database` parameter. options: - name: enabled @@ -732,7 +732,7 @@ files: example: 600 - name: max_execution_time description: | - Set the maximum time for schema collection (in seconds). Defaults to 10 seconds. + Set the maximum time for schema collection (in seconds). Defaults to 10 seconds. Capped by `schemas_collection.collection_interval` value: type: number diff --git a/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example b/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example index 97199c413facd..e8b21d47c6a97 100644 --- a/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example +++ b/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example @@ -217,10 +217,10 @@ instances: # include_index_usage_metrics_tempdb: false ## @param index_usage_metrics_interval - integer - optional - default: 300 - ## Configure the interval (in seconds) for the collection of index usage statistics from the - ## `sys.dm_db_index_usage_stats` DMV. + ## Configure the interval (in seconds) for the collection of index usage statistics from the + ## `sys.dm_db_index_usage_stats` DMV. ## Defaults to 300 seconds (5 minutes). If you intend on updating this value, it is strongly recommended - ## to use a consistent value throughout all SQL Server agent deployments. + ## to use a consistent value throughout all SQL Server agent deployments. # # index_usage_metrics_interval: 300 @@ -280,7 +280,7 @@ instances: # # dbm: false - ## Configure collection of sys.configurations. This is an alpha feature. + ## Configure collection of sys.configurations. # # collect_settings: @@ -659,7 +659,7 @@ instances: # # ignore_missing_database: false - ## Configure collection of schemas. If `database_autodiscovery` is not enabled, data is collected + ## Configure collection of schemas. If `database_autodiscovery` is not enabled, data is collected ## only for the database configured with `database` parameter. # # schemas_collection: @@ -675,7 +675,7 @@ instances: # collection_interval: 600 ## @param max_execution_time - number - optional - default: 10 - ## Set the maximum time for schema collection (in seconds). Defaults to 10 seconds. + ## Set the maximum time for schema collection (in seconds). Defaults to 10 seconds. ## Capped by `schemas_collection.collection_interval` # # max_execution_time: 10 From 6ba6a69f98c64679ed06e0e92c8e96fbaadc3287 Mon Sep 17 00:00:00 2001 From: kisungyi92 <101687848+kisungyi92@users.noreply.github.com> Date: Wed, 3 Jul 2024 05:50:33 +0900 Subject: [PATCH 05/68] Kisung/adding eks fargate sidecar injection documentation for operator (#17846) * Testing README changes preview * test preview * Update README.md * test * test change in eks fargate readme * Add operator tab * Adding operator tab for sidecar injection * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update eks_fargate/README.md Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> * Update eks_fargate/README.md Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> * Update eks_fargate/README.md Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> * Update eks_fargate/README.md Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> * Update eks_fargate/README.md Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> * Update eks_fargate/README.md Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> * Update README.md * Change the position of EKS Fargate RBAC * Rolling back the RBAC position * Update README.md * close codeblock * adjust indentation * Update README.md * Update README.md * Run CI * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md --------- Co-authored-by: Rosa Trieu Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> --- eks_fargate/README.md | 181 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 176 insertions(+), 5 deletions(-) diff --git a/eks_fargate/README.md b/eks_fargate/README.md index c1d30c0b182e0..d762ec166e424 100644 --- a/eks_fargate/README.md +++ b/eks_fargate/README.md @@ -109,10 +109,10 @@ You can run the Agent as a sidecar by using the [Datadog Admission Controller][3 With manual configuration, you must modify every workload manifest when adding or changing the Agent sidecar. Datadog recommends you use the Admission Controller. - -##### Admission Controller + +##### Admission Controller using Datadog Operator -
This feature requires Cluster Agent v7.52.0+ and the ECS Fargate integration. +
This feature requires Cluster Agent v7.52.0+ and Datadog Operator v1.7.0+.
The setup below configures the Cluster Agent to communicate with the Agent sidecars, allowing access to features such as [events collection][29], [Kubernetes resources view][30], and [cluster checks][31]. @@ -124,7 +124,178 @@ The setup below configures the Cluster Agent to communicate with the Agent sidec ```shell kubectl create secret generic datadog-secret -n datadog-agent \ - --from-literal api-key= --from-literal token= + --from-literal api-key= --from-literal token= + kubectl create secret generic datadog-secret -n fargate \ + --from-literal api-key= --from-literal token= + ``` + For more information how these secrets are used, see the [Cluster Agent Setup][35]. + +###### Setup + +1. Create a `DatadogAgent` custom resource in the `datadog-agent.yaml` with Admission Controller enabled: + + ```yaml + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + global: + clusterAgentTokenSecret: + secretName: datadog-secret + keyName: token + credentials: + apiSecret: + secretName: datadog-secret + keyName: api-key + features: + admissionController: + agentSidecarInjection: + enabled: true + provider: fargate + ``` + Then apply the new configuration: + + ```shell + kubectl apply -n datadog-agent -f datadog-agent.yaml + ``` + +2. After the Cluster Agent reaches a running state and registers Admission Controller mutating webhooks, an Agent sidecar is automatically injected into any pod created with the label `agent.datadoghq.com/sidecar:fargate`. + **The Admission Controller does not mutate pods that are already created**. + +**Example result** + + The following is a `spec.containers` snippet from a Redis deployment where the Admission Controller injected an Agent sidecar. The sidecar is automatically configured using internal defaults, with additional settings to run in an EKS Fargate environment. The sidecar uses the image repository and tags set in `datadog-agent.yaml`. Communication between Cluster Agent and sidecars is enabled by default. + + {{< highlight yaml "hl_lines=7-29" >}} + containers: + - args: + - redis-server + image: redis:latest + # ... + - env: + - name: DD_API_KEY + valueFrom: + secretKeyRef: + key: api-key + name: datadog-secret + - name: DD_CLUSTER_AGENT_AUTH_TOKEN + valueFrom: + secretKeyRef: + key: token + name: datadog-secret + - name: DD_EKS_FARGATE + value: "true" + # ... + image: gcr.io/datadoghq/agent:7.51.0 + imagePullPolicy: IfNotPresent + name: datadog-agent-injected + resources: + limits: + cpu: 200m + memory: 256Mi + requests: + cpu: 200m + memory: 256Mi + {{< /highlight >}} + +###### Sidecar profiles and custom selectors + +To further configure the Agent or its container resources, use the properties in your `DatadogAgent` resource. Use the `spec.features.admissionController.agentSidecarInjection.profiles` to add environment variable definitions and resource settings. Use the `spec.features.admissionController.agentSidecarInjection.selectors` property to configure a custom selector to target workload pods instead of updating the workload to add `agent.datadoghq.com/sidecar:fargate` labels. + + 1. Create a `DatadogAgent` custom resource in `datadog-values.yaml` file that configures a sidecar profile and a custom pod selector. + + **Example** + + In the following example, a selector targets all pods with the label `"app": redis`. The sidecar profile configures a `DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED` environment variable and resource settings. + + ```yaml + spec: + features: + admissionController: + agentSidecarInjection: + enabled: true + provider: fargate + selectors: + - objectSelector: + matchLabels: + "app": redis + profiles: + - env: + - name: DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED + value: "true" + resources: + requests: + cpu: "400m" + memory: "256Mi" + limits: + cpu: "800m" + memory: "512Mi" + ``` + + Then apply the new configuration: + + ```shell + kubectl apply -n datadog-agent -f datadog-agent.yaml + ``` + + 2. After the Cluster Agent reaches a running state and registers Admission Controller mutating webhooks, an Agent sidecar is automatically injected into any pod created with the label `app:redis`. + **The Admission Controller does not mutate pods that are already created**. + + **Example result** + + The following is a `spec.containers` snippet from a Redis deployment where the Admission Controller injected an Agent sidecar. The environment variables and resource settings from `datadog-agent.yaml` are automatically applied. + + {{< highlight yaml "hl_lines=12-30" >}} + labels: + app: redis + eks.amazonaws.com/fargate-profile: fp-fargate + pod-template-hash: 7b86c456c4 + # ... + containers: + - args: + - redis-server + image: redis:latest + # ... + - env: + - name: DD_API_KEY + valueFrom: + secretKeyRef: + key: api-key + name: datadog-secret + # ... + - name: DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED + value: "true" + # ... + image: gcr.io/datadoghq/agent:7.51.0 + imagePullPolicy: IfNotPresent + name: datadog-agent-injected + resources: + limits: + cpu: 800m + memory: 512Mi + requests: + cpu: 400m + memory: 256Mi + {{< /highlight >}} + + + +##### Admission Controller using Helm + +
This feature requires Cluster Agent v7.52.0+. +
+ +The setup below configures the Cluster Agent to communicate with the Agent sidecars, allowing access to features such as [events collection][29], [Kubernetes resources view][30], and [cluster checks][31]. + +**Prerequisites** + +* Set up RBAC in the application namespace(s). See the [AWS EKS Fargate RBAC](#aws-eks-fargate-rbac) section on this page. +* Create a Kubernetes secret containing your Datadog API key and Cluster Agent token in the Datadog installation and application namespaces: + + ```shell + kubectl create secret generic datadog-secret -n datadog-agent \ + --from-literal api-key= --from-literal token= kubectl create secret generic datadog-secret -n fargate \ --from-literal api-key= --from-literal token= ``` @@ -693,4 +864,4 @@ Additional helpful documentation, links, and articles: [33]: https://github.com/kubernetes/kube-state-metrics [34]: https://docs.datadoghq.com/containers/guide/clustercheckrunners [35]: http://docs.datadoghq.com/agent/cluster_agent -[36]: https://docs.datadoghq.com/containers/cluster_agent/admission_controller/?tab=operator \ No newline at end of file +[36]: https://docs.datadoghq.com/containers/cluster_agent/admission_controller/?tab=operator From 3b646f77bf4ea0820267e8152a9900502e40a0e4 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Wed, 3 Jul 2024 11:10:37 +0200 Subject: [PATCH 06/68] Improve messages around dependency spec management (#17969) * Improve messages around dependency spec management 1. Validation says which commands can fix the failure. 2. Freeze/sync have docs that make it clear what they do and how they differ. 3. Freeze says what it's doing to the "static file" * add changelog * adjust test --- datadog_checks_dev/changelog.d/17969.fixed | 1 + .../dev/tooling/commands/validate/dep.py | 6 +++++- ddev/changelog.d/17969.fixed | 1 + ddev/src/ddev/cli/dep/freeze.py | 10 +++++++--- ddev/src/ddev/cli/dep/sync.py | 10 +++++++--- ddev/tests/cli/test_dep.py | 2 +- 6 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 datadog_checks_dev/changelog.d/17969.fixed create mode 100644 ddev/changelog.d/17969.fixed diff --git a/datadog_checks_dev/changelog.d/17969.fixed b/datadog_checks_dev/changelog.d/17969.fixed new file mode 100644 index 0000000000000..384b9b1ce6102 --- /dev/null +++ b/datadog_checks_dev/changelog.d/17969.fixed @@ -0,0 +1 @@ +Improve messages around dependency spec management diff --git a/datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/dep.py b/datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/dep.py index 23ec5f94ef77c..bcfd5d607c95f 100644 --- a/datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/dep.py +++ b/datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/dep.py @@ -241,7 +241,11 @@ def dep(check, require_base_check_version, min_base_check_version): message = ( f'Mismatch for dependency `{name}`:\n' f' Agent: {" | ".join(sorted(agent_dependency_definitions))}\n' - f' Checks: {" | ".join(sorted(check_dependency_definitions))}' + f' Checks: {" | ".join(sorted(check_dependency_definitions))}\n' + 'If you think the Agent requirements are correct, run:\n' + 'ddev dep sync\n' + 'If you think the Checks requirements are correct, run:\n' + 'ddev dep freeze' ) echo_failure(message) annotate_error(agent_dependencies_file, message) diff --git a/ddev/changelog.d/17969.fixed b/ddev/changelog.d/17969.fixed new file mode 100644 index 0000000000000..384b9b1ce6102 --- /dev/null +++ b/ddev/changelog.d/17969.fixed @@ -0,0 +1 @@ +Improve messages around dependency spec management diff --git a/ddev/src/ddev/cli/dep/freeze.py b/ddev/src/ddev/cli/dep/freeze.py index 7c14aaf060e0b..d09474e359893 100644 --- a/ddev/src/ddev/cli/dep/freeze.py +++ b/ddev/src/ddev/cli/dep/freeze.py @@ -10,10 +10,14 @@ ) -@click.command(short_help="Combine all dependencies for the Agent's static environment") +@click.command() @click.pass_obj def freeze(app): - """Combine all dependencies for the Agent's static environment.""" + """ + Combine all dependencies for the Agent's static environment. + + This reads and merges the dependency specs from individual integrations and writes them to agent_requirements.in + """ dependencies, errors = read_check_dependencies(app.repo) if errors: @@ -22,5 +26,5 @@ def freeze(app): app.abort() - app.display_info(f'Static file: {app.repo.agent_requirements}') + app.display_info(f'Writing combined requirements to: {app.repo.agent_requirements}') update_agent_dependencies(app.repo, dependencies) diff --git a/ddev/src/ddev/cli/dep/sync.py b/ddev/src/ddev/cli/dep/sync.py index 4d8336048a636..d329c56f3e244 100644 --- a/ddev/src/ddev/cli/dep/sync.py +++ b/ddev/src/ddev/cli/dep/sync.py @@ -19,11 +19,15 @@ def get_dependency_set(python_versions): } -@click.command( - short_help="Update integrations' dependencies so that they match the Agent's static environment", -) +@click.command() @click.pass_obj def sync(app): + """ + Synchronize integration dependency spec with that of the agent as a whole. + + Reads dependency spec from agent_requirements.in and propagates it to all integrations. + For each integration we propagate only the relevant parts (i.e. its direct dependencies). + """ agent_dependencies, errors = read_agent_dependencies(app.repo) if errors: diff --git a/ddev/tests/cli/test_dep.py b/ddev/tests/cli/test_dep.py index 448a38daf9f22..fe235995addd5 100644 --- a/ddev/tests/cli/test_dep.py +++ b/ddev/tests/cli/test_dep.py @@ -46,7 +46,7 @@ def test_freeze(ddev, fake_repo): agent_requirements_path = fake_repo / 'agent_requirements.in' assert result.exit_code == 0 - assert result.output == f'Static file: {agent_requirements_path}\n' + assert result.output == f'Writing combined requirements to: {agent_requirements_path}\n' requirements = agent_requirements_path.read_text() From 23f0c893ecf7cae2166f808309556e7d3bd5218e Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Wed, 3 Jul 2024 11:10:48 +0200 Subject: [PATCH 07/68] Fix centos mirrorlist for kafka consumer tests (#17975) --- kafka_consumer/tests/docker/kerberos/kdc/Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kafka_consumer/tests/docker/kerberos/kdc/Dockerfile b/kafka_consumer/tests/docker/kerberos/kdc/Dockerfile index 2983ae6a5b8b2..3ee1f0321f871 100644 --- a/kafka_consumer/tests/docker/kerberos/kdc/Dockerfile +++ b/kafka_consumer/tests/docker/kerberos/kdc/Dockerfile @@ -3,6 +3,12 @@ FROM centos:7 ENV container docker # 1. Installing Kerberos server, admin and client +# mirrorlist.contos.org does not exits anymore, the below stack exchange post suggests a workaround +# https://serverfault.com/questions/1161816/mirrorlist-centos-org-no-longer-resolve + +RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo && \ + sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo && \ + sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo RUN yum install -y krb5-server krb5-libs krb5-auth-dialog RUN yum install -y krb5-workstation krb5-libs From a9da8014b48ff11516561c8897d80a6ced5f49de Mon Sep 17 00:00:00 2001 From: Alex Weisberger Date: Wed, 3 Jul 2024 09:07:13 -0400 Subject: [PATCH 08/68] Drop explain plan failures to debug level (#17974) * Drop explain plan errors to debug logs. * Changelog entry --- postgres/changelog.d/17974.changed | 3 +++ .../postgres/explain_parameterized_queries.py | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 postgres/changelog.d/17974.changed diff --git a/postgres/changelog.d/17974.changed b/postgres/changelog.d/17974.changed new file mode 100644 index 0000000000000..1d9b5c1c25672 --- /dev/null +++ b/postgres/changelog.d/17974.changed @@ -0,0 +1,3 @@ +Drop explain plan errors to debug level. + +Explain plan collection can fail for any number of legitimate reasons, so avoid polluting the logs by logging them at the debug level. diff --git a/postgres/datadog_checks/postgres/explain_parameterized_queries.py b/postgres/datadog_checks/postgres/explain_parameterized_queries.py index 1628a77e18f4f..bfb2a54d12940 100644 --- a/postgres/datadog_checks/postgres/explain_parameterized_queries.py +++ b/postgres/datadog_checks/postgres/explain_parameterized_queries.py @@ -124,7 +124,7 @@ def _create_prepared_statement(self, dbname, statement, obfuscated_statement, qu logged_statement = obfuscated_statement if self._config.log_unobfuscated_plans: logged_statement = statement - logger.warning( + logger.debug( 'Failed to create prepared statement when explaining statement(%s)=[%s] | err=[%s]', query_signature, logged_statement, @@ -159,7 +159,7 @@ def _explain_prepared_statement(self, dbname, statement, obfuscated_statement, q logged_statement = obfuscated_statement if self._config.log_unobfuscated_plans: logged_statement = statement - logger.warning( + logger.debug( 'Failed to explain parameterized statement(%s)=[%s] | err=[%s]', query_signature, logged_statement, @@ -173,7 +173,7 @@ def _deallocate_prepared_statement(self, dbname, query_signature): dbname, "DEALLOCATE PREPARE dd_{query_signature}".format(query_signature=query_signature) ) except Exception as e: - logger.warning( + logger.debug( 'Failed to deallocate prepared statement query_signature=[%s] | err=[%s]', query_signature, e, From 3f7689e31d7c87da98f17ae65033fa153456378b Mon Sep 17 00:00:00 2001 From: Zhengda Lu Date: Wed, 3 Jul 2024 11:31:33 -0400 Subject: [PATCH 09/68] [mongo] Support auto-discover available databases for the monitored mongodb instance (#17959) * autodiscover mongodb databases * Add database autodiscovery support * remove print * only list authorized collections not views * ignore collections from config when database autodiscovery is enabled * add changelog * update changelog * fix license header * update include list with deprecated dbnames * fix test * update comments * update changelog * return databases and count * update readme * update config description to dbnames --- mongo/README.md | 89 ++- mongo/assets/configuration/spec.yaml | 73 +- mongo/changelog.d/17959.added | 4 + mongo/changelog.d/17959.deprecated | 2 + mongo/datadog_checks/mongo/api.py | 17 + .../mongo/collectors/coll_stats.py | 13 +- .../mongo/collectors/index_stats.py | 10 +- mongo/datadog_checks/mongo/config.py | 35 + .../mongo/config_models/instance.py | 13 + .../mongo/data/conf.yaml.example | 60 +- .../mongo/dbm/operation_samples.py | 19 +- mongo/datadog_checks/mongo/discovery.py | 53 ++ mongo/datadog_checks/mongo/mongo.py | 72 +- mongo/tests/compose/scripts/init-router.js | 2 +- mongo/tests/conftest.py | 18 + mongo/tests/fixtures/$currentOp-mongos | 10 +- mongo/tests/fixtures/list_collection_names | 1 + mongo/tests/fixtures/list_database_names | 2 +- mongo/tests/mocked_api.py | 4 + .../metrics-collection-autodiscover.json | 730 ++++++++++++++++++ mongo/tests/results/metrics-count-dbs.json | 2 +- .../metrics-indexes-stats-autodiscover.json | 90 +++ .../tests/results/metrics-indexes-stats.json | 6 +- .../results/opeartion-activities-mongos.json | 10 +- mongo/tests/test_e2e.py | 8 +- mongo/tests/test_integration.py | 41 + mongo/tests/test_unit.py | 1 + mongo/tests/test_unit_config.py | 26 + 28 files changed, 1331 insertions(+), 80 deletions(-) create mode 100644 mongo/changelog.d/17959.added create mode 100644 mongo/changelog.d/17959.deprecated create mode 100644 mongo/datadog_checks/mongo/discovery.py create mode 100644 mongo/tests/fixtures/list_collection_names create mode 100644 mongo/tests/results/metrics-collection-autodiscover.json create mode 100644 mongo/tests/results/metrics-indexes-stats-autodiscover.json diff --git a/mongo/README.md b/mongo/README.md index ca12e2e901953..d03c0d4af2f12 100644 --- a/mongo/README.md +++ b/mongo/README.md @@ -44,7 +44,12 @@ db.createUser({ "roles": [ { role: "read", db: "admin" }, { role: "clusterMonitor", db: "admin" }, - { role: "read", db: "local" } + { role: "read", db: "local" }, + # Grant additional read-only access to the database you want to collect collection/index statistics from. + { role: "read", db: "mydb" }, + { role: "read", db: "myanotherdb" }, + # Alternatively, grant read-only access to all databases. + { role: "readAnyDatabase", db: "admin" } ] }) ``` @@ -72,7 +77,12 @@ db.createUser({ "roles": [ { role: "read", db: "admin" }, { role: "clusterMonitor", db: "admin" }, - { role: "read", db: "local" } + { role: "read", db: "local" }, + # Grant additional read-only access to the database you want to collect collection/index statistics from. + { role: "read", db: "mydb" }, + { role: "read", db: "myanotherdb" }, + # Alternatively, grant read-only access to all databases. + { role: "readAnyDatabase", db: "admin" } ] }) ``` @@ -200,6 +210,81 @@ To configure this check for an Agent running on a host: 2. [Restart the Agent][6]. +##### Database Autodiscovery + +Starting from Datadog Agent v7.56, you can enable database autodiscovery to automatically collect metrics from all your databases on the MongoDB instance. +Please note that database autodiscovery is disabled by default. Read access to the autodiscovered databases is required to collect metrics from them. +To enable it, add the following configuration to your `mongo.d/conf.yaml` file: + +```yaml + init_config: + + instances: + ## @param hosts - list of strings - required + ## Hosts to collect metrics from, as is appropriate for your deployment topology. + ## E.g. for a standalone deployment, specify the hostname and port of the mongod instance. + ## For replica sets or sharded clusters, see instructions in the sample conf.yaml. + ## Only specify multiple hosts when connecting through mongos + # + - hosts: + - : + + ## @param username - string - optional + ## The username to use for authentication. + # + username: datadog + + ## @param password - string - optional + ## The password to use for authentication. + # + password: + + ## @param options - mapping - optional + ## Connection options. For a complete list, see: + ## https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options + # + options: + authSource: admin + + ## @param database_autodiscovery - mapping - optional + ## Enable database autodiscovery to automatically collect metrics from all your MongoDB databases. + # + database_autodiscovery: + ## @param enabled - boolean - required + ## Enable database autodiscovery. + # + enabled: true + + ## @param include - list of strings - optional + ## List of databases to include in the autodiscovery. Use regular expressions to match multiple databases. + ## For example, to include all databases starting with "mydb", use "^mydb.*". + ## By default, include is set to ".*" and all databases are included. + # + include: + - "^mydb.*" + + ## @param exclude - list of strings - optional + ## List of databases to exclude from the autodiscovery. Use regular expressions to match multiple databases. + ## For example, to exclude all databases starting with "mydb", use "^mydb.*". + ## When the exclude list conflicts with include list, the exclude list takes precedence. + # + exclude: + - "^mydb2.*" + - "admin$" + + ## @param max_databases - integer - optional + ## Maximum number of databases to collect metrics from. The default value is 100. + # + max_databases: 100 + + ## @param refresh_interval - integer - optional + ## Interval in seconds to refresh the list of databases. The default value is 600 seconds. + # + refresh_interval: 600 + ``` + +2. [Restart the Agent][6]. + ##### Trace collection Datadog APM integrates with Mongo to see the traces across your distributed system. Trace collection is enabled by default in the Datadog Agent v6+. To start collecting traces: diff --git a/mongo/assets/configuration/spec.yaml b/mongo/assets/configuration/spec.yaml index cafffa3693d2a..b33c39d407e81 100644 --- a/mongo/assets/configuration/spec.yaml +++ b/mongo/assets/configuration/spec.yaml @@ -80,15 +80,81 @@ files: type: object properties: [] - name: dbnames + deprecation: + Agent version: "7.56.0" + Migration: | + dbnames is deprecated. Set database_autodiscovery.enabled to true to enable database autodiscovery. + Use database_autodiscovery.include or database_autodiscovery.exclude to include or exclude + specific databases to collect metrics from. description: | - Set a list of the names of all databases to collect metrics from. - If this key does not exist, all metrics from all databases on the server will be collected. + Set a list of the names of all databases to collect dbstats metrics from. + If this key does not exist, all dbstats metrics from all databases on the server will be collected. value: type: array items: type: string example: [ one_database, other_database ] + - name: database_autodiscovery + description: | + Define the configuration for database autodiscovery. + Complete this section if you want to auto-discover databases on this MongoDB instance. + options: + - name: enabled + description: Enable database autodiscovery. + value: + type: boolean + example: false + display_default: false + - name: max_databases + description: The maximum number of databases this host should monitor. + value: + type: integer + example: 100 + display_default: 100 + - name: include + description: | + Regular expression for database names to include as part of + database autodiscovery. + Will report metrics for databases that are found in this instance, + ignores databases listed but not found. + Character casing is ignored. The regular expressions start matching from + the beginning, so to match anywhere, prepend `.*`. For exact matches append `$`. + Defaults to `.*` to include everything. + value: + type: array + items: + type: string + example: + - "mydatabase$" + - "orders.*" + display_default: + - ".*" + - name: exclude + description: | + Regular expression for database names to exclude as part of `database_autodiscovery`. + Character casing is ignored. The regular expressions start matching from the beginning, + so to match anywhere, prepend `.*`. For exact matches append `$`. + In case of conflicts, database exclusion via `exclude` takes precedence over + those found via `include` + value: + type: array + items: + type: string + example: + - "admin$" + - "config$" + - "local$" + display_default: + - "admin$" + - "config$" + - "local$" + - name: refresh_interval + description: Frequency in seconds of scans for new databases. Defaults to 10 minutes. + value: + type: integer + example: 600 + display_default: 600 - name: dbm description: | Set to `true` enable Database Monitoring. @@ -218,6 +284,9 @@ files: * `db:` e.g. `db:` * `collection:` e.g. `collection:` Each collection generates many metrics, up to 8 + the number of indices on the collection for each collection. + + NOTE: This option is ignored when database_autodiscovery is enabled. + Metrics are collected for all authorized collections on autodiscovered databases. value: type: array items: diff --git a/mongo/changelog.d/17959.added b/mongo/changelog.d/17959.added new file mode 100644 index 0000000000000..163a9d54c9eec --- /dev/null +++ b/mongo/changelog.d/17959.added @@ -0,0 +1,4 @@ +Support auto-discover available databases (up to 100 databases) for the monitored mongodb instance. +By default, database autodiscovery is disabled. Set `database_autodiscovery.enabled` to true to enable database autodiscovery. +When enabled, the integration will automatically discover the databases available in the monitored mongodb instance and refresh the list of databases every 10 minutes. +Use `database_autodiscovery.include` and `database_autodiscovery.exclude` to filter the list of databases to monitor. \ No newline at end of file diff --git a/mongo/changelog.d/17959.deprecated b/mongo/changelog.d/17959.deprecated new file mode 100644 index 0000000000000..2ea42d88e7c79 --- /dev/null +++ b/mongo/changelog.d/17959.deprecated @@ -0,0 +1,2 @@ +Configuration option `dbnames` is deprecated and will be removed in a future release. +To monitor multiple databases, set `database_autodiscovery.enabled` to true and configure `database_autodiscovery.include` and `database_autodiscovery.exclude` filters instead. diff --git a/mongo/datadog_checks/mongo/api.py b/mongo/datadog_checks/mongo/api.py index 587588b9de9c7..d7edfa5576837 100644 --- a/mongo/datadog_checks/mongo/api.py +++ b/mongo/datadog_checks/mongo/api.py @@ -187,6 +187,23 @@ def refresh_shards(self): def server_status(self): return self['admin'].command('serverStatus') + def list_authorized_collections(self, db_name): + try: + return self[db_name].list_collection_names( + filter={"type": "collection"}, # Only return collections, not views + authorizedCollections=True, + ) + except OperationFailure: + # The user is not authorized to run listCollections on this database. + # This is NOT a critical error, so we log it as a warning. + self._log.warning( + "Not authorized to run 'listCollections' on db %s, " + "please make sure the user has read access on the database or " + "add the database to the `database_autodiscovery.exclude` list in the configuration file", + db_name, + ) + return [] + @property def hostname(self): try: diff --git a/mongo/datadog_checks/mongo/collectors/coll_stats.py b/mongo/datadog_checks/mongo/collectors/coll_stats.py index ae9804c0e6bdc..97f106d6dde74 100644 --- a/mongo/datadog_checks/mongo/collectors/coll_stats.py +++ b/mongo/datadog_checks/mongo/collectors/coll_stats.py @@ -12,9 +12,6 @@ class CollStatsCollector(MongoCollector): """Collects metrics from the 'collstats' command. Note: Collecting those metrics requires that 'collection' is set in the 'additional_metrics' section of the config. - Also, the collections to be monitored have to be explicitly listed in the config as well. - Finally, it is currently not possible to monitor collections from multiple databases using a single check instance. - The check will always use the main database name defined in the configuration (or 'admin' by default). """ def __init__(self, check, db_name, tags, coll_names=None): @@ -26,11 +23,17 @@ def compatible_with(self, deployment): # Can only be run once per cluster. return deployment.is_principal() + def _get_collections(self, api): + if self.coll_names: + return self.coll_names + return api.list_authorized_collections(self.db_name) + def collect(self, api): # Ensure that you're on the right db db = api[self.db_name] - # Loop through the collections - for coll_name in self.coll_names: + coll_names = self._get_collections(api) + + for coll_name in coll_names: # Grab the stats from the collection payload = {'collection': db.command("collstats", coll_name)} additional_tags = ["db:%s" % self.db_name, "collection:%s" % coll_name] diff --git a/mongo/datadog_checks/mongo/collectors/index_stats.py b/mongo/datadog_checks/mongo/collectors/index_stats.py index 219c685d80ee5..78e1f73210cae 100644 --- a/mongo/datadog_checks/mongo/collectors/index_stats.py +++ b/mongo/datadog_checks/mongo/collectors/index_stats.py @@ -17,14 +17,22 @@ def compatible_with(self, deployment): # Can only be run once per cluster. return deployment.is_principal() + def _get_collections(self, api): + if self.coll_names: + return self.coll_names + return api.list_authorized_collections(self.db_name) + def collect(self, api): db = api[self.db_name] - for coll_name in self.coll_names: + coll_names = self._get_collections(api) + + for coll_name in coll_names: try: for stats in db[coll_name].aggregate([{"$indexStats": {}}], cursor={}): idx_tags = self.base_tags + [ "name:{0}".format(stats.get('name', 'unknown')), "collection:{0}".format(coll_name), + "db:{0}".format(self.db_name), ] val = int(stats.get('accesses', {}).get('ops', 0)) self.gauge('mongodb.collection.indexes.accesses.ops', val, idx_tags) diff --git a/mongo/datadog_checks/mongo/config.py b/mongo/datadog_checks/mongo/config.py index 01ef54aceb743..2857593cf20ed 100644 --- a/mongo/datadog_checks/mongo/config.py +++ b/mongo/datadog_checks/mongo/config.py @@ -110,7 +110,11 @@ def __init__(self, instance, log): # MongoDB instance hostname override self.reported_database_hostname = instance.get('reported_database_hostname', None) + # MongoDB database auto-discovery, disabled by default + self.database_autodiscovery_config = self._get_database_autodiscovery_config(instance) + # Generate tags for service checks and metrics + # TODO: service check and metric tags should be updated to be dynamic with auto-discovered databases self.service_check_tags = self._compute_service_check_tags() self.metric_tags = self._compute_metric_tags() @@ -167,3 +171,34 @@ def operation_samples(self): self._operation_samples_config.get('explained_operations_per_hour_per_query', 10) ), } + + def _get_database_autodiscovery_config(self, instance): + database_autodiscovery_config = instance.get('database_autodiscovery', {"enabled": False}) + if database_autodiscovery_config['enabled']: + if self.db_name != 'admin': + # If database_autodiscovery is enabled, the `database` parameter should not be set + # because we want to monitor all databases. Unless the `database` parameter is set to 'admin'. + self.log.warning( + "The `database` parameter should not be set when `database_autodiscovery` is enabled. " + "The `database` parameter will be ignored." + ) + if self.coll_names: + self.log.warning( + "The `collections` parameter should not be set when `database_autodiscovery` is enabled. " + "The `collections` parameter will be ignored." + ) + if self.db_names: + # dbnames is deprecated and will be removed in a future version + self.log.warning( + "The `dbnames` parameter is deprecated and will be removed in a future version. " + "To monitor more databases, enable `database_autodiscovery` and use " + "`database_autodiscovery.include` instead." + ) + include_list = [f"{db}$" for db in self.db_names] # Append $ to each db name for exact match + if not database_autodiscovery_config['enabled']: + # if database_autodiscovery is not enabled, we should enable it + database_autodiscovery_config['enabled'] = True + if not database_autodiscovery_config.get('include'): + # if database_autodiscovery is enabled but include list is not set, set the include list + database_autodiscovery_config['include'] = include_list + return database_autodiscovery_config diff --git a/mongo/datadog_checks/mongo/config_models/instance.py b/mongo/datadog_checks/mongo/config_models/instance.py index cdfa146bf5ed4..fa990a8fb47fd 100644 --- a/mongo/datadog_checks/mongo/config_models/instance.py +++ b/mongo/datadog_checks/mongo/config_models/instance.py @@ -42,6 +42,18 @@ class CustomQuery(BaseModel): tags: Optional[tuple[str, ...]] = None +class DatabaseAutodiscovery(BaseModel): + model_config = ConfigDict( + arbitrary_types_allowed=True, + frozen=True, + ) + enabled: Optional[bool] = None + exclude: Optional[tuple[str, ...]] = None + include: Optional[tuple[str, ...]] = None + max_databases: Optional[int] = None + refresh_interval: Optional[int] = None + + class MetricPatterns(BaseModel): model_config = ConfigDict( arbitrary_types_allowed=True, @@ -74,6 +86,7 @@ class InstanceConfig(BaseModel): connection_scheme: Optional[str] = None custom_queries: Optional[tuple[CustomQuery, ...]] = None database: Optional[str] = None + database_autodiscovery: Optional[DatabaseAutodiscovery] = None database_instance_collection_interval: Optional[float] = None dbm: Optional[bool] = None dbnames: Optional[tuple[str, ...]] = None diff --git a/mongo/datadog_checks/mongo/data/conf.yaml.example b/mongo/datadog_checks/mongo/data/conf.yaml.example index b175488fdb4db..d52325a6dbf14 100644 --- a/mongo/datadog_checks/mongo/data/conf.yaml.example +++ b/mongo/datadog_checks/mongo/data/conf.yaml.example @@ -77,13 +77,66 @@ instances: # options: {} ## @param dbnames - list of strings - optional - ## Set a list of the names of all databases to collect metrics from. - ## If this key does not exist, all metrics from all databases on the server will be collected. + ## Set a list of the names of all databases to collect dbstats metrics from. + ## If this key does not exist, all dbstats metrics from all databases on the server will be collected. + ## + ## + ## <<< DEPRECATED >>> + ## + ## Agent version: 7.56.0 + ## Migration: dbnames is deprecated. Set database_autodiscovery.enabled to true to enable database autodiscovery. + ## Use database_autodiscovery.include or database_autodiscovery.exclude to include or exclude + ## specific databases to collect metrics from. # # dbnames: # - one_database # - other_database + ## Define the configuration for database autodiscovery. + ## Complete this section if you want to auto-discover databases on this MongoDB instance. + # + # database_autodiscovery: + + ## @param enabled - boolean - optional - default: false + ## Enable database autodiscovery. + # + # enabled: false + + ## @param max_databases - integer - optional - default: 100 + ## The maximum number of databases this host should monitor. + # + # max_databases: 100 + + ## @param include - list of strings - optional - default: ['.*'] + ## Regular expression for database names to include as part of + ## database autodiscovery. + ## Will report metrics for databases that are found in this instance, + ## ignores databases listed but not found. + ## Character casing is ignored. The regular expressions start matching from + ## the beginning, so to match anywhere, prepend `.*`. For exact matches append `$`. + ## Defaults to `.*` to include everything. + # + # include: + # - mydatabase$ + # - orders.* + + ## @param exclude - list of strings - optional - default: ['admin$', 'config$', 'local$'] + ## Regular expression for database names to exclude as part of `database_autodiscovery`. + ## Character casing is ignored. The regular expressions start matching from the beginning, + ## so to match anywhere, prepend `.*`. For exact matches append `$`. + ## In case of conflicts, database exclusion via `exclude` takes precedence over + ## those found via `include` + # + # exclude: + # - admin$ + # - config$ + # - local$ + + ## @param refresh_interval - integer - optional - default: 600 + ## Frequency in seconds of scans for new databases. Defaults to 10 minutes. + # + # refresh_interval: 600 + ## @param dbm - boolean - optional - default: false ## Set to `true` enable Database Monitoring. ## @@ -195,6 +248,9 @@ instances: ## * `db:` e.g. `db:` ## * `collection:` e.g. `collection:` ## Each collection generates many metrics, up to 8 + the number of indices on the collection for each collection. + ## + ## NOTE: This option is ignored when database_autodiscovery is enabled. + ## Metrics are collected for all authorized collections on autodiscovered databases. # # collections: # - diff --git a/mongo/datadog_checks/mongo/dbm/operation_samples.py b/mongo/datadog_checks/mongo/dbm/operation_samples.py index 74d4dee70bb8c..889538eae6d47 100644 --- a/mongo/datadog_checks/mongo/dbm/operation_samples.py +++ b/mongo/datadog_checks/mongo/dbm/operation_samples.py @@ -96,7 +96,9 @@ def collect_operation_samples(self): activities = [] - for activity, sample in self._get_operation_samples(now): + for activity, sample in self._get_operation_samples( + now, databases_monitored=self._check._database_autodiscovery.databases + ): if sample: self._check.log.debug("Sending operation sample: %s", sample) self._check.database_monitoring_query_sample(json_util.dumps(sample)) @@ -115,10 +117,10 @@ def _should_collect_operation_samples(self) -> bool: return False return True - def _get_operation_samples(self, now): + def _get_operation_samples(self, now, databases_monitored: List[str]): for operation in self._get_current_op(): try: - if not self._should_include_operation(operation): + if not self._should_include_operation(operation, databases_monitored): continue command = operation.get("command") @@ -155,7 +157,7 @@ def _get_current_op(self): self._check.log.debug("Found operation: %s", operation) yield operation - def _should_include_operation(self, operation: dict) -> bool: + def _should_include_operation(self, operation: dict, databases_monitored: List[str]) -> bool: # Skip operations from db that are not configured to be monitored namespace = operation.get("ns") if not namespace: @@ -163,12 +165,9 @@ def _should_include_operation(self, operation: dict) -> bool: return False db, _ = namespace.split(".", 1) - if self._check._config.db_names is not None: - if db not in self._check._config.db_names: - self._check.log.debug( - "Skipping operation for database %s because it is not configured to be monitored", db - ) - return False + if db not in databases_monitored: + self._check.log.debug("Skipping operation for database %s because it is not configured to be monitored", db) + return False if db in SYSTEM_DATABASES: self._check.log.debug("Skipping operation for system database %s", db) diff --git a/mongo/datadog_checks/mongo/discovery.py b/mongo/datadog_checks/mongo/discovery.py new file mode 100644 index 0000000000000..9ffae77883f1b --- /dev/null +++ b/mongo/datadog_checks/mongo/discovery.py @@ -0,0 +1,53 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + + +from datadog_checks.base.utils.discovery import Discovery +from datadog_checks.mongo.common import ReplicaSetDeployment + +DEFAULT_MAX_DATABASES = 100 +DEFAULT_REFRESH_INTERVAL = 600 + + +class MongoDBDatabaseAutodiscovery(Discovery): + def __init__(self, check): + self._autodiscovery_config = check._config.database_autodiscovery_config + self.autodiscovery_enabled = self._autodiscovery_config.get("enabled", False) + + super(MongoDBDatabaseAutodiscovery, self).__init__( + self._list_databases, + include={db: 0 for db in self._autodiscovery_config.get("include", [".*"])}, + exclude=self._autodiscovery_config.get("exclude"), + interval=self._autodiscovery_config.get('refresh_interval', DEFAULT_REFRESH_INTERVAL), + ) + self._check = check + self._log = self._check.log + self._max_databases = self._autodiscovery_config.get("max_databases", DEFAULT_MAX_DATABASES) + + self.database_count = 0 # total number of databases on the server + + def _list_databases(self): + deployment = self._check.api_client.deployment_type + + databases = [] + if isinstance(deployment, ReplicaSetDeployment) and deployment.is_arbiter: + self._log.debug("Replicaset and arbiter deployment, no databases will be checked") + elif isinstance(deployment, ReplicaSetDeployment) and deployment.replset_state == 3: + self._log.debug("Replicaset is in recovering state, will skip reading database names") + else: + databases = self._check.api_client.list_database_names() + self.database_count = len(databases) + return databases + + @property + def databases(self): + ''' + The databases property returns a list of database names to monitor, capped at the max_databases limit. + ''' + dbnames = [database[1] for database in self.get_items()] + dbnames = dbnames[: self._max_databases] # limit the number of databases to monitor + return dbnames + + def get_databases_and_count(self): + return self.databases, self.database_count diff --git a/mongo/datadog_checks/mongo/mongo.py b/mongo/datadog_checks/mongo/mongo.py index 95553650a755c..fdeb6d7850131 100644 --- a/mongo/datadog_checks/mongo/mongo.py +++ b/mongo/datadog_checks/mongo/mongo.py @@ -32,6 +32,7 @@ from datadog_checks.mongo.common import SERVICE_CHECK_NAME, MongosDeployment, ReplicaSetDeployment from datadog_checks.mongo.config import MongoConfig from datadog_checks.mongo.dbm.operation_samples import MongoOperationSamples +from datadog_checks.mongo.discovery import MongoDBDatabaseAutodiscovery from . import metrics @@ -98,6 +99,9 @@ def __init__(self, name, init_config, instances=None): # DBM self._operation_samples = MongoOperationSamples(check=self) + # Database autodiscovery + self._database_autodiscovery = MongoDBDatabaseAutodiscovery(check=self) + @cached_property def api_client(self): # This needs to be a property for our unit test mocks to work. @@ -109,7 +113,6 @@ def refresh_collectors(self, deployment_type, all_dbs, tags): ConnPoolStatsCollector(self, tags), ReplicationOpLogCollector(self, tags), FsyncLockCollector(self, tags), - CollStatsCollector(self, self._config.db_name, tags, coll_names=self._config.coll_names), ServerStatusCollector(self, self._config.db_name, tags, tcmalloc=collect_tcmalloc_metrics), ] if self._config.replica_check: @@ -121,21 +124,32 @@ def refresh_collectors(self, deployment_type, all_dbs, tags): assert self._mongo_version is not None, "No MongoDB version is set, make sure you refreshed the metadata." if self._mongo_version_parsed >= Version("3.6"): potential_collectors.append(SessionStatsCollector(self, tags)) - if self._config.collections_indexes_stats: - if self._mongo_version_parsed >= Version("3.2"): - potential_collectors.append( - IndexStatsCollector(self, self._config.db_name, tags, self._config.coll_names) - ) - else: - self.log.debug( - "'collections_indexes_stats' is only available starting from mongo 3.2: " - "your mongo version is %s", - self._mongo_version, - ) + dbstats_tag_dbname = self._config.dbstats_tag_dbname for db_name in all_dbs: + # DbStatCollector is always collected on all monitored databases (filtered by db_names config option) + # For backward compatibility, we keep collecting from all monitored databases + # regardless of the auto-discovery settings. potential_collectors.append(DbStatCollector(self, db_name, dbstats_tag_dbname, tags)) + monitored_dbs = all_dbs if self._database_autodiscovery.autodiscovery_enabled else [self._config.db_name] + # When autodiscovery is enabled, we collect collstats and indexstats for all auto-discovered databases + # Otherwise, we collect collstats and indexstats for the database specified in the configuration + for db_name in monitored_dbs: + # For backward compatibility, coll_names is ONLY applied when autodiscovery is not enabled + # Otherwise, we collect collstats & indexstats for all auto-discovered databases and authorized collections + coll_names = None if self._database_autodiscovery.autodiscovery_enabled else self._config.coll_names + potential_collectors.append(CollStatsCollector(self, db_name, tags, coll_names=coll_names)) + if self._config.collections_indexes_stats: + if self._mongo_version_parsed >= Version("3.2"): + potential_collectors.append(IndexStatsCollector(self, db_name, tags, coll_names=coll_names)) + else: + self.log.debug( + "'collections_indexes_stats' is only available starting from mongo 3.2: " + "your mongo version is %s", + self._mongo_version, + ) + # Custom queries are always collected except if the node is a secondary or an arbiter in a replica set. # It is possible to collect custom queries from secondary nodes as well but this has to be explicitly # stated in the configuration of the query. @@ -260,7 +274,7 @@ def _collect_metrics(self): deployment = self.api_client.deployment_type tags = self._get_tags(include_deployment_tags=True, include_internal_resource_tags=True) - dbnames = self._get_db_names(self.api_client, deployment, tags) + dbnames = self._get_db_names(tags) self.refresh_collectors(deployment, dbnames, tags) for collector in self.collectors: try: @@ -275,34 +289,10 @@ def _collect_metrics(self): "Unable to collect logs from collector %s. Some metrics will be missing.", collector, exc_info=True ) - def _get_db_names(self, api, deployment, tags): - if isinstance(deployment, ReplicaSetDeployment) and deployment.is_arbiter: - self.log.debug("Replicaset and arbiter deployment, no databases will be checked") - dbnames = [] - elif isinstance(deployment, ReplicaSetDeployment) and deployment.replset_state == 3: - self.log.debug("Replicaset is in recovering state, will skip reading database names") - dbnames = [] - else: - server_databases = api.list_database_names() - self.gauge('mongodb.dbs', len(server_databases), tags=tags) - if self._config.db_names is None: - self.log.debug("No databases configured. Retrieving list of databases from the mongo server") - dbnames = server_databases - else: - self.log.debug("Collecting only from the configured databases: %s", self._config.db_names) - dbnames = [] - self.log.debug("Checking the configured databases that exist on the mongo server") - for config_dbname in self._config.db_names: - if config_dbname in server_databases: - self.log.debug("'%s' database found on the mongo server", config_dbname) - dbnames.append(config_dbname) - else: - self.log.warning( - "'%s' database not found on the mongo server" - ", will not append to list of databases to check", - config_dbname, - ) - self.log.debug("List of databases to check: %s", dbnames) + def _get_db_names(self, tags): + dbnames, database_count = self._database_autodiscovery.get_databases_and_count() + if database_count: + self.gauge('mongodb.dbs', database_count, tags=tags) return dbnames def _diagnose_tls(self): diff --git a/mongo/tests/compose/scripts/init-router.js b/mongo/tests/compose/scripts/init-router.js index f2a1eb43d5c3a..c4d0ebcf85e8a 100644 --- a/mongo/tests/compose/scripts/init-router.js +++ b/mongo/tests/compose/scripts/init-router.js @@ -6,4 +6,4 @@ sh.addShard("shard02/shard02a:27019") sh.addShard("shard02/shard02b:27019") sh.addShard("shard03/shard03a:27020") -sh.addShard("shard03/shard03b:27020") \ No newline at end of file +sh.addShard("shard03/shard03b:27020") diff --git a/mongo/tests/conftest.py b/mongo/tests/conftest.py index b64fee5b00c0f..b0c2740c76ee2 100644 --- a/mongo/tests/conftest.py +++ b/mongo/tests/conftest.py @@ -126,6 +126,15 @@ def instance_integration(instance_custom_queries): return instance +@pytest.fixture +def instance_integration_autodiscovery(instance_integration): + instance = copy.deepcopy(instance_integration) + instance["database_autodiscovery"] = { + "enabled": True, + } + return instance + + @pytest.fixture def instance_integration_cluster(instance_integration): instance = copy.deepcopy(instance_integration) @@ -133,6 +142,15 @@ def instance_integration_cluster(instance_integration): return instance +@pytest.fixture +def instance_integration_cluster_autodiscovery(instance_integration_cluster): + instance = copy.deepcopy(instance_integration_cluster) + instance["database_autodiscovery"] = { + "enabled": True, + } + return instance + + @pytest.fixture(scope='session', autouse=True) def mock_local_tls_dns(): with mock_local(HOSTNAME_TO_PORT_MAPPING): diff --git a/mongo/tests/fixtures/$currentOp-mongos b/mongo/tests/fixtures/$currentOp-mongos index 2d68aadaf67d4..a5acd5992c3e9 100644 --- a/mongo/tests/fixtures/$currentOp-mongos +++ b/mongo/tests/fixtures/$currentOp-mongos @@ -280,7 +280,7 @@ "secs_running": 0, "microsecs_running": 26789, "op": "getmore", - "ns": "dbmorders_1.movies", + "ns": "integration.movies", "redacted": false, "command": { "getMore": 7153547462305880513, @@ -340,7 +340,7 @@ }, { "role": "readWrite", - "db": "dbmorders_1" + "db": "integration" } ] }, @@ -369,7 +369,7 @@ } }, "mayBypassWriteBlocking": true, - "$db": "dbmorders_1" + "$db": "integration" }, "queryFramework": "classic", "planSummary": "COLLSCAN", @@ -508,7 +508,7 @@ }, { "role": "readWrite", - "db": "dbmorders_1" + "db": "integration" } ] }, @@ -537,7 +537,7 @@ } }, "mayBypassWriteBlocking": true, - "$db": "dbmorders_1" + "$db": "integration" }, "planSummary": "COLLSCAN", "operationUsingCursorId": 155914227 diff --git a/mongo/tests/fixtures/list_collection_names b/mongo/tests/fixtures/list_collection_names new file mode 100644 index 0000000000000..a6ca513e1de3e --- /dev/null +++ b/mongo/tests/fixtures/list_collection_names @@ -0,0 +1 @@ +["foo", "bar"] \ No newline at end of file diff --git a/mongo/tests/fixtures/list_database_names b/mongo/tests/fixtures/list_database_names index 841642dabfe37..0086cf0583516 100644 --- a/mongo/tests/fixtures/list_database_names +++ b/mongo/tests/fixtures/list_database_names @@ -1 +1 @@ -["admin", "config", "test", "local"] \ No newline at end of file +["admin", "config", "test", "local", "integration"] \ No newline at end of file diff --git a/mongo/tests/mocked_api.py b/mongo/tests/mocked_api.py index 33b363b6460ef..280da967011e6 100644 --- a/mongo/tests/mocked_api.py +++ b/mongo/tests/mocked_api.py @@ -65,6 +65,10 @@ def command(self, command, *args, **_): with open(os.path.join(HERE, "fixtures", filename), 'r') as f: return json.load(f, object_hook=json_util.object_hook) + def list_collection_names(self, session=None, filter=None, comment=None, **kwargs): + with open(os.path.join(HERE, "fixtures", "list_collection_names"), 'r') as f: + return json.load(f) + def aggregate(self, pipeline, session=None, **kwargs): if pipeline[0] == {'$currentOp': {'allUsers': True}}: # mock the $currentOp aggregation used for operation sampling diff --git a/mongo/tests/results/metrics-collection-autodiscover.json b/mongo/tests/results/metrics-collection-autodiscover.json new file mode 100644 index 0000000000000..f13f8ef455b65 --- /dev/null +++ b/mongo/tests/results/metrics-collection-autodiscover.json @@ -0,0 +1,730 @@ +[ + { + "name": "mongodb.collection.size", + "type": 0, + "value": 5670.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 2600.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 27.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 26.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 210.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 100.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 5670.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 2600.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 27.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 26.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 210.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 100.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 5670.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 2600.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 27.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 26.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 210.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 100.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 5670.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 2600.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 27.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 26.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 210.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 100.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar", + "index:_id_" + ] + } +] \ No newline at end of file diff --git a/mongo/tests/results/metrics-count-dbs.json b/mongo/tests/results/metrics-count-dbs.json index 3dd6481eeeb38..7a656f091b746 100644 --- a/mongo/tests/results/metrics-count-dbs.json +++ b/mongo/tests/results/metrics-count-dbs.json @@ -2,7 +2,7 @@ { "name": "mongodb.dbs", "type": 0, - "value": 4.0, + "value": 5.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test" ] diff --git a/mongo/tests/results/metrics-indexes-stats-autodiscover.json b/mongo/tests/results/metrics-indexes-stats-autodiscover.json new file mode 100644 index 0000000000000..e1f64ace03346 --- /dev/null +++ b/mongo/tests/results/metrics-indexes-stats-autodiscover.json @@ -0,0 +1,90 @@ +[ + { + "name": "mongodb.collection.indexes.accesses.ops", + "type": 0, + "value": 1243.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "name:_id_", + "collection:foo", + "db:test" + ] + }, + { + "name": "mongodb.collection.indexes.accesses.ops", + "type": 0, + "value": 12.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "name:_id_", + "collection:bar", + "db:test" + ] + }, + { + "name": "mongodb.collection.indexes.accesses.ops", + "type": 0, + "value": 1243.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "name:_id_", + "collection:foo", + "db:admin" + ] + }, + { + "name": "mongodb.collection.indexes.accesses.ops", + "type": 0, + "value": 12.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "name:_id_", + "collection:bar", + "db:admin" + ] + }, + { + "name": "mongodb.collection.indexes.accesses.ops", + "type": 0, + "value": 1243.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "name:_id_", + "collection:foo", + "db:config" + ] + }, + { + "name": "mongodb.collection.indexes.accesses.ops", + "type": 0, + "value": 12.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "name:_id_", + "collection:bar", + "db:config" + ] + }, + { + "name": "mongodb.collection.indexes.accesses.ops", + "type": 0, + "value": 1243.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "name:_id_", + "collection:foo", + "db:integration" + ] + }, + { + "name": "mongodb.collection.indexes.accesses.ops", + "type": 0, + "value": 12.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "name:_id_", + "collection:bar", + "db:integration" + ] + } +] \ No newline at end of file diff --git a/mongo/tests/results/metrics-indexes-stats.json b/mongo/tests/results/metrics-indexes-stats.json index dea5b20e76070..4977ad2f1d274 100644 --- a/mongo/tests/results/metrics-indexes-stats.json +++ b/mongo/tests/results/metrics-indexes-stats.json @@ -6,7 +6,8 @@ "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", "name:_id_", - "collection:foo" + "collection:foo", + "db:test" ] }, { @@ -16,7 +17,8 @@ "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", "name:_id_", - "collection:bar" + "collection:bar", + "db:test" ] } ] \ No newline at end of file diff --git a/mongo/tests/results/opeartion-activities-mongos.json b/mongo/tests/results/opeartion-activities-mongos.json index 43aa9d99b12ba..117e04d930298 100644 --- a/mongo/tests/results/opeartion-activities-mongos.json +++ b/mongo/tests/results/opeartion-activities-mongos.json @@ -82,12 +82,12 @@ }, { "now": 1715911398.1112723, - "query_signature": "21940c8bee157379", - "statement": "{\"getMore\": 7153547462305880513, \"collection\": \"movies\", \"lsid\": {\"id\": {\"$binary\": {\"base64\": \"zLd+DNpkQdqkWN1AZ828SA==\", \"subType\": \"04\"}}, \"uid\": {\"$binary\": {\"base64\": \"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\", \"subType\": \"00\"}}}, \"$clusterTime\": {\"clusterTime\": {\"$timestamp\": {\"t\": 1718311810, \"i\": 6}}, \"signature\": {\"hash\": {\"$binary\": {\"base64\": \"AAAAAAAAAAAAAAAAAAAAAAAAAAA=\", \"subType\": \"00\"}}, \"keyId\": 0}}, \"$configTime\": {\"$timestamp\": {\"t\": 1718311809, \"i\": 1}}, \"$topologyTime\": {\"$timestamp\": {\"t\": 1716428552, \"i\": 3}}, \"$audit\": {\"$impersonatedUser\": {\"user\": \"shopper_4\", \"db\": \"admin\"}, \"$impersonatedRoles\": [{\"role\": \"readWrite\", \"db\": \"dbmorders\"}, {\"role\": \"readWrite\", \"db\": \"dbmorders_1\"}]}, \"$client\": {\"application\": {\"name\": \"orders-mongo\"}, \"driver\": {\"name\": \"mongo-go-driver\", \"version\": \"v1.15.0\"}, \"os\": {\"type\": \"linux\", \"architecture\": \"amd64\"}, \"platform\": \"go1.22.1\", \"env\": {\"container\": {\"runtime\": \"docker\"}}, \"mongos\": {\"host\": \"ip-172-29-203-167:27017\", \"client\": \"127.0.0.1:50388\", \"version\": \"7.0.9\"}}, \"mayBypassWriteBlocking\": true, \"$db\": \"dbmorders_1\"}", + "query_signature": "c9f4db9be9cc6b96", + "statement": "{\"getMore\": 7153547462305880513, \"collection\": \"movies\", \"lsid\": {\"id\": {\"$binary\": {\"base64\": \"zLd+DNpkQdqkWN1AZ828SA==\", \"subType\": \"04\"}}, \"uid\": {\"$binary\": {\"base64\": \"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\", \"subType\": \"00\"}}}, \"$clusterTime\": {\"clusterTime\": {\"$timestamp\": {\"t\": 1718311810, \"i\": 6}}, \"signature\": {\"hash\": {\"$binary\": {\"base64\": \"AAAAAAAAAAAAAAAAAAAAAAAAAAA=\", \"subType\": \"00\"}}, \"keyId\": 0}}, \"$configTime\": {\"$timestamp\": {\"t\": 1718311809, \"i\": 1}}, \"$topologyTime\": {\"$timestamp\": {\"t\": 1716428552, \"i\": 3}}, \"$audit\": {\"$impersonatedUser\": {\"user\": \"shopper_4\", \"db\": \"admin\"}, \"$impersonatedRoles\": [{\"role\": \"readWrite\", \"db\": \"dbmorders\"}, {\"role\": \"readWrite\", \"db\": \"integration\"}]}, \"$client\": {\"application\": {\"name\": \"orders-mongo\"}, \"driver\": {\"name\": \"mongo-go-driver\", \"version\": \"v1.15.0\"}, \"os\": {\"type\": \"linux\", \"architecture\": \"amd64\"}, \"platform\": \"go1.22.1\", \"env\": {\"container\": {\"runtime\": \"docker\"}}, \"mongos\": {\"host\": \"ip-172-29-203-167:27017\", \"client\": \"127.0.0.1:50388\", \"version\": \"7.0.9\"}}, \"mayBypassWriteBlocking\": true, \"$db\": \"integration\"}", "active": true, "desc": "conn703087", "opid": "shard2:155914227", - "ns": "dbmorders_1.movies", + "ns": "integration.movies", "plan_summary": "COLLSCAN", "current_op_time": "2024-06-13T20:50:10.834+00:00", "microsecs_running": 26789, @@ -129,14 +129,14 @@ "no_cursor_timeout": false, "tailable": false, "await_data": false, - "originating_command": "{\"aggregate\": \"movies\", \"pipeline\": [{\"$lookup\": {\"from\": \"comments\", \"as\": \"comments\", \"localField\": \"_id\", \"foreignField\": \"movie_id\"}}], \"cursor\": {\"batchSize\": 0}, \"needsMerge\": true, \"let\": {\"NOW\": {\"$literal\": {\"$date\": \"2024-06-13T20:50:10.805Z\"}}, \"CLUSTER_TIME\": {\"$literal\": {\"$timestamp\": {\"t\": 1718311810, \"i\": 6}}}}, \"fromMongos\": true, \"collation\": {\"locale\": \"simple\"}, \"readConcern\": {\"level\": \"local\", \"provenance\": \"implicitDefault\"}, \"writeConcern\": {\"w\": \"majority\", \"wtimeout\": 0, \"provenance\": \"implicitDefault\"}, \"shardVersion\": {\"e\": {\"$oid\": \"666b52b852fa5a96da6d59ae\"}, \"t\": {\"$timestamp\": {\"t\": 1718309560, \"i\": 188}}, \"v\": {\"$timestamp\": {\"t\": 1, \"i\": 5}}}, \"clientOperationKey\": {\"$binary\": {\"base64\": \"zc+70kUAQ5m1zVRdJjwYxw==\", \"subType\": \"04\"}}, \"lsid\": {\"id\": {\"$binary\": {\"base64\": \"zLd+DNpkQdqkWN1AZ828SA==\", \"subType\": \"04\"}}, \"uid\": {\"$binary\": {\"base64\": \"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\", \"subType\": \"00\"}}}, \"$clusterTime\": {\"clusterTime\": {\"$timestamp\": {\"t\": 1718311810, \"i\": 6}}, \"signature\": {\"hash\": {\"$binary\": {\"base64\": \"AAAAAAAAAAAAAAAAAAAAAAAAAAA=\", \"subType\": \"00\"}}, \"keyId\": 0}}, \"$configTime\": {\"$timestamp\": {\"t\": 1718311809, \"i\": 1}}, \"$topologyTime\": {\"$timestamp\": {\"t\": 1716428552, \"i\": 3}}, \"$audit\": {\"$impersonatedUser\": {\"user\": \"shopper_4\", \"db\": \"admin\"}, \"$impersonatedRoles\": [{\"role\": \"readWrite\", \"db\": \"dbmorders\"}, {\"role\": \"readWrite\", \"db\": \"dbmorders_1\"}]}, \"$client\": {\"application\": {\"name\": \"orders-mongo\"}, \"driver\": {\"name\": \"mongo-go-driver\", \"version\": \"v1.15.0\"}, \"os\": {\"type\": \"linux\", \"architecture\": \"amd64\"}, \"platform\": \"go1.22.1\", \"env\": {\"container\": {\"runtime\": \"docker\"}}, \"mongos\": {\"host\": \"ip-172-29-203-167:27017\", \"client\": \"127.0.0.1:50388\", \"version\": \"7.0.9\"}}, \"mayBypassWriteBlocking\": true, \"$db\": \"dbmorders_1\"}", + "originating_command": "{\"aggregate\": \"movies\", \"pipeline\": [{\"$lookup\": {\"from\": \"comments\", \"as\": \"comments\", \"localField\": \"_id\", \"foreignField\": \"movie_id\"}}], \"cursor\": {\"batchSize\": 0}, \"needsMerge\": true, \"let\": {\"NOW\": {\"$literal\": {\"$date\": \"2024-06-13T20:50:10.805Z\"}}, \"CLUSTER_TIME\": {\"$literal\": {\"$timestamp\": {\"t\": 1718311810, \"i\": 6}}}}, \"fromMongos\": true, \"collation\": {\"locale\": \"simple\"}, \"readConcern\": {\"level\": \"local\", \"provenance\": \"implicitDefault\"}, \"writeConcern\": {\"w\": \"majority\", \"wtimeout\": 0, \"provenance\": \"implicitDefault\"}, \"shardVersion\": {\"e\": {\"$oid\": \"666b52b852fa5a96da6d59ae\"}, \"t\": {\"$timestamp\": {\"t\": 1718309560, \"i\": 188}}, \"v\": {\"$timestamp\": {\"t\": 1, \"i\": 5}}}, \"clientOperationKey\": {\"$binary\": {\"base64\": \"zc+70kUAQ5m1zVRdJjwYxw==\", \"subType\": \"04\"}}, \"lsid\": {\"id\": {\"$binary\": {\"base64\": \"zLd+DNpkQdqkWN1AZ828SA==\", \"subType\": \"04\"}}, \"uid\": {\"$binary\": {\"base64\": \"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\", \"subType\": \"00\"}}}, \"$clusterTime\": {\"clusterTime\": {\"$timestamp\": {\"t\": 1718311810, \"i\": 6}}, \"signature\": {\"hash\": {\"$binary\": {\"base64\": \"AAAAAAAAAAAAAAAAAAAAAAAAAAA=\", \"subType\": \"00\"}}, \"keyId\": 0}}, \"$configTime\": {\"$timestamp\": {\"t\": 1718311809, \"i\": 1}}, \"$topologyTime\": {\"$timestamp\": {\"t\": 1716428552, \"i\": 3}}, \"$audit\": {\"$impersonatedUser\": {\"user\": \"shopper_4\", \"db\": \"admin\"}, \"$impersonatedRoles\": [{\"role\": \"readWrite\", \"db\": \"dbmorders\"}, {\"role\": \"readWrite\", \"db\": \"integration\"}]}, \"$client\": {\"application\": {\"name\": \"orders-mongo\"}, \"driver\": {\"name\": \"mongo-go-driver\", \"version\": \"v1.15.0\"}, \"os\": {\"type\": \"linux\", \"architecture\": \"amd64\"}, \"platform\": \"go1.22.1\", \"env\": {\"container\": {\"runtime\": \"docker\"}}, \"mongos\": {\"host\": \"ip-172-29-203-167:27017\", \"client\": \"127.0.0.1:50388\", \"version\": \"7.0.9\"}}, \"mayBypassWriteBlocking\": true, \"$db\": \"integration\"}", "plan_summary": "COLLSCAN", "operation_using_cursor_id": 155914227 }, "type": "op", "op": "getmore", "shard": null, - "dbname": "dbmorders_1", + "dbname": "integration", "application": "orders-mongo", "collection": "movies", "comment": null, diff --git a/mongo/tests/test_e2e.py b/mongo/tests/test_e2e.py index 4af0c5a705bed..b1f6ab97dbe53 100644 --- a/mongo/tests/test_e2e.py +++ b/mongo/tests/test_e2e.py @@ -64,7 +64,9 @@ @standalone @pytest.mark.e2e -def test_e2e_mongo_standalone(dd_agent_check, instance_user): +@pytest.mark.parametrize('database_autodiscovery_enabled', [True, False]) +def test_e2e_mongo_standalone(dd_agent_check, instance_user, database_autodiscovery_enabled): + instance_user['database_autodiscovery'] = {'enabled': database_autodiscovery_enabled} aggregator = dd_agent_check(instance_user, rate=True) for metric in MONGOD_METRICS: aggregator.assert_metric(metric) @@ -73,7 +75,9 @@ def test_e2e_mongo_standalone(dd_agent_check, instance_user): @shard @pytest.mark.e2e -def test_e2e_mongo_shard(dd_agent_check, instance_authdb): +@pytest.mark.parametrize('database_autodiscovery_enabled', [True, False]) +def test_e2e_mongo_shard(dd_agent_check, instance_authdb, database_autodiscovery_enabled): + instance_authdb['database_autodiscovery'] = {'enabled': database_autodiscovery_enabled} aggregator = dd_agent_check(instance_authdb, rate=True) for metric in MONGOS_METRICS: diff --git a/mongo/tests/test_integration.py b/mongo/tests/test_integration.py index 7ccdb742a0dd6..a46b2a48141ce 100644 --- a/mongo/tests/test_integration.py +++ b/mongo/tests/test_integration.py @@ -1082,3 +1082,44 @@ def test_integration_reemit_mongodb_instance_on_deployment_change( mongo_check.api_client.deployment_type.replset_state = SECONDARY_STATE_ID dd_run_check(mongo_check) assert _get_mongodb_instance_event(aggregator) is not None + + +def test_integration_database_autodiscovery(instance_integration_autodiscovery, aggregator, check, dd_run_check): + mongo_check = check(instance_integration_autodiscovery) + + with mock_pymongo("replica-primary"): + dd_run_check(mongo_check) + + replica_tags = [ + 'replset_name:replset', + 'replset_state:primary', + 'replset_me:replset-data-0.mongo.default.svc.cluster.local:27017', + ] + metrics_categories = [ + 'count-dbs', + 'serverStatus', + 'custom-queries', + 'oplog', + 'replset-primary', + 'top', + 'dbstats-local', + 'fsynclock', + 'dbstats', + 'indexes-stats-autodiscover', + 'collection-autodiscover', + ] + _assert_metrics(mongo_check, aggregator, metrics_categories, replica_tags) + # Lag metrics are tagged with the state of the member and not with the current one. + _assert_metrics(mongo_check, aggregator, ['replset-lag-from-primary']) + + aggregator.assert_all_metrics_covered() + aggregator.assert_metrics_using_metadata( + get_metadata_metrics(), + exclude=[ + 'dd.custom.mongo.aggregate.total', + 'dd.custom.mongo.count', + 'dd.custom.mongo.query_a.amount', + 'dd.custom.mongo.query_a.el', + ], + check_submission_type=True, + ) diff --git a/mongo/tests/test_unit.py b/mongo/tests/test_unit.py index 0cfe918f9a13a..022d6614f5d4b 100644 --- a/mongo/tests/test_unit.py +++ b/mongo/tests/test_unit.py @@ -635,6 +635,7 @@ def test_when_version_lower_than_3_6_then_no_session_metrics_reported(aggregator @pytest.mark.parametrize("error_cls", CRITICAL_FAILURE) def test_service_check_critical_when_connection_dies(error_cls, aggregator, check, instance, dd_run_check): + instance['database_autodiscovery'] = {'enabled': True, 'refresh_interval': 0} # force refresh on every run check = check(instance) with mock_pymongo('standalone') as mocked_client: dd_run_check(check) diff --git a/mongo/tests/test_unit_config.py b/mongo/tests/test_unit_config.py index 2cbda301afa2b..e9b68386f8899 100644 --- a/mongo/tests/test_unit_config.py +++ b/mongo/tests/test_unit_config.py @@ -123,3 +123,29 @@ def test_mongo_operation_samples_enabled( mongo_check = check(instance_integration_cluster) assert mongo_check._config.operation_samples.get('enabled') == operation_samples_enabled + + +def test_database_autodiscovery_disabled(instance_user): + config = MongoConfig(instance_user, mock.Mock()) + assert config.database_autodiscovery_config is not None + assert config.database_autodiscovery_config['enabled'] is False + + +def test_database_autodiscovery_enabled(instance_user): + instance_user['database_autodiscovery'] = {'enabled': True, 'include': ['test.*'], 'exclude': ['admin']} + config = MongoConfig(instance_user, mock.Mock()) + assert config.database_autodiscovery_config is not None + assert config.database_autodiscovery_config['enabled'] is True + assert config.database_autodiscovery_config['include'] == ['test.*'] + assert config.database_autodiscovery_config['exclude'] == ['admin'] + + +def test_database_autodiscovery_dbnames_deprecation(instance_user): + # dbnames is deprecated in favor of database_autodiscovery + # for backwards compatibility, we implicitly enable database_autodiscovery if dbnames is set + # and set the include list to the dbnames list + instance_user['dbnames'] = ['test', 'integration'] + config = MongoConfig(instance_user, mock.Mock()) + assert config.database_autodiscovery_config is not None + assert config.database_autodiscovery_config['enabled'] is True + assert config.database_autodiscovery_config['include'] == ['test$', 'integration$'] From 0ee23b66a61f4b899df1023cd9b32463b602f802 Mon Sep 17 00:00:00 2001 From: Anthonin Bonnefoy Date: Wed, 3 Jul 2024 18:05:59 +0200 Subject: [PATCH 10/68] Add collect of metrics for buffer cache usage (#17960) The pg_buffercache extension provides a pg_buffercache view that give a detailed report the usage of shared buffer: which relation is using it, whether it's dirty and how many backends are pinning this buffer. This patch adds the capacity to collect data from pg_buffercache to provide visibility on shared buffer usage. --- postgres/assets/configuration/spec.yaml | 7 +++ postgres/changelog.d/17960.added | 1 + postgres/datadog_checks/postgres/config.py | 1 + .../postgres/config_models/defaults.py | 4 ++ .../postgres/config_models/instance.py | 1 + .../postgres/data/conf.yaml.example | 6 +++ postgres/datadog_checks/postgres/postgres.py | 3 ++ postgres/datadog_checks/postgres/util.py | 46 +++++++++++++++++++ postgres/metadata.csv | 5 ++ postgres/tests/common.py | 5 +- postgres/tests/compose/resources/02_setup.sh | 1 + postgres/tests/test_pg_integration.py | 31 ++++++++++++- 12 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 postgres/changelog.d/17960.added diff --git a/postgres/assets/configuration/spec.yaml b/postgres/assets/configuration/spec.yaml index fdbd5920728e1..640ff11b2a0c4 100644 --- a/postgres/assets/configuration/spec.yaml +++ b/postgres/assets/configuration/spec.yaml @@ -256,6 +256,13 @@ files: example: - application_name default: [] + - name: collect_buffercache_metrics + description: | + If set to true, collects metrics regarding buffer cache usage from pg_buffercache. + pg_buffercache extension must be installed. + value: + type: boolean + example: false - name: collect_database_size_metrics description: Collect database size metrics. value: diff --git a/postgres/changelog.d/17960.added b/postgres/changelog.d/17960.added new file mode 100644 index 0000000000000..ddf2d3e754ee5 --- /dev/null +++ b/postgres/changelog.d/17960.added @@ -0,0 +1 @@ +Add collect of metrics for buffer cache usage diff --git a/postgres/datadog_checks/postgres/config.py b/postgres/datadog_checks/postgres/config.py index 6514dcd77e059..7437033f7206a 100644 --- a/postgres/datadog_checks/postgres/config.py +++ b/postgres/datadog_checks/postgres/config.py @@ -81,6 +81,7 @@ def __init__(self, instance, init_config): self.ssl_key = instance.get('ssl_key', None) self.ssl_password = instance.get('ssl_password', None) self.table_count_limit = instance.get('table_count_limit', TABLE_COUNT_LIMIT) + self.collect_buffercache_metrics = is_affirmative(instance.get('collect_buffercache_metrics', False)) self.collect_function_metrics = is_affirmative(instance.get('collect_function_metrics', False)) # Default value for `count_metrics` is True for backward compatibility self.collect_count_metrics = is_affirmative(instance.get('collect_count_metrics', True)) diff --git a/postgres/datadog_checks/postgres/config_models/defaults.py b/postgres/datadog_checks/postgres/config_models/defaults.py index 027a7897798ba..73eeb93931e81 100644 --- a/postgres/datadog_checks/postgres/config_models/defaults.py +++ b/postgres/datadog_checks/postgres/config_models/defaults.py @@ -28,6 +28,10 @@ def instance_collect_bloat_metrics(): return False +def instance_collect_buffercache_metrics(): + return False + + def instance_collect_checksum_metrics(): return False diff --git a/postgres/datadog_checks/postgres/config_models/instance.py b/postgres/datadog_checks/postgres/config_models/instance.py index 935ae9957ff19..f96fce5a9e3d0 100644 --- a/postgres/datadog_checks/postgres/config_models/instance.py +++ b/postgres/datadog_checks/postgres/config_models/instance.py @@ -200,6 +200,7 @@ class InstanceConfig(BaseModel): azure: Optional[Azure] = None collect_activity_metrics: Optional[bool] = None collect_bloat_metrics: Optional[bool] = None + collect_buffercache_metrics: Optional[bool] = None collect_checksum_metrics: Optional[bool] = None collect_count_metrics: Optional[bool] = None collect_database_size_metrics: Optional[bool] = None diff --git a/postgres/datadog_checks/postgres/data/conf.yaml.example b/postgres/datadog_checks/postgres/data/conf.yaml.example index b10a31f607a7c..39ed86d93f454 100644 --- a/postgres/datadog_checks/postgres/data/conf.yaml.example +++ b/postgres/datadog_checks/postgres/data/conf.yaml.example @@ -197,6 +197,12 @@ instances: # activity_metrics_excluded_aggregations: # - application_name + ## @param collect_buffercache_metrics - boolean - optional - default: false + ## If set to true, collects metrics regarding buffer cache usage from pg_buffercache. + ## pg_buffercache extension must be installed. + # + # collect_buffercache_metrics: false + ## @param collect_database_size_metrics - boolean - optional - default: true ## Collect database size metrics. # diff --git a/postgres/datadog_checks/postgres/postgres.py b/postgres/datadog_checks/postgres/postgres.py index a04f253ed4eaf..081385f11793e 100644 --- a/postgres/datadog_checks/postgres/postgres.py +++ b/postgres/datadog_checks/postgres/postgres.py @@ -41,6 +41,7 @@ ANALYZE_PROGRESS_METRICS, AWS_RDS_HOSTNAME_SUFFIX, AZURE_DEPLOYMENT_TYPE_TO_RESOURCE_TYPE, + BUFFERCACHE_METRICS, CLUSTER_VACUUM_PROGRESS_METRICS, CONNECTION_METRICS, COUNT_METRICS, @@ -301,6 +302,8 @@ def dynamic_queries(self): if self._config.collect_wal_metrics is not False: # collect wal metrics for pg >= 10 only if the user has not explicitly disabled it queries.append(WAL_FILE_METRICS) + if self._config.collect_buffercache_metrics: + queries.append(BUFFERCACHE_METRICS) queries.append(QUERY_PG_REPLICATION_SLOTS) queries.append(VACUUM_PROGRESS_METRICS) queries.append(STAT_SUBSCRIPTION_METRICS) diff --git a/postgres/datadog_checks/postgres/util.py b/postgres/datadog_checks/postgres/util.py index 4e7d648f10342..984a96e13ef7f 100644 --- a/postgres/datadog_checks/postgres/util.py +++ b/postgres/datadog_checks/postgres/util.py @@ -695,6 +695,52 @@ def get_list_chunks(lst, n): "max(age(backend_xmin))", ] +# pg_buffercache is implemented with a function scan. Thus, the planner doesn't +# have much reliable estimation on the number of rows returned by pg_buffercache. +# The function's pgproc.prorows is used and 1000 is used as a default value. +# On top of that, the function is volatile, preventing possible inlining and +# optimisation. +# It is very likely that we have way more buffers than relations: 16GB of shared_buffers +# will have 2097152 buffers returned by pg_buffercache while pg_class will mostly be +# around thousands of rows. Therefore, we write the query as a CTE aggregating on reldatabase +# and relfilenode. Given that the function is volatile, this will force the CTE to be +# materialized and we should have less or the same cardinality as output as pg_class's +# rows. +# This is more efficient than the cte-less version which will rely on a merge join and thus +# sort the output of pg_buffercache. +BUFFERCACHE_METRICS = { + 'name': 'buffercache_metrics', + 'query': """ +WITH buffer_by_relfilenode AS ( + SELECT reldatabase, relfilenode, + NULLIF(COUNT(CASE WHEN relfilenode IS NOT NULL THEN 1 END), 0) as used, + COUNT(CASE WHEN relfilenode IS NULL THEN 1 END) as unused, + SUM(usagecount) as sum_usagecount, + NULLIF(SUM(isdirty::int), 0) as sum_dirty, + NULLIF(SUM(pinning_backends), 0) as sum_pinning + FROM pg_buffercache + GROUP BY reldatabase, relfilenode +) +SELECT COALESCE(d.datname, 'shared'), n.nspname, c.relname, + used, unused, sum_usagecount, sum_dirty, sum_pinning + FROM buffer_by_relfilenode b + LEFT JOIN pg_database d ON b.reldatabase = d.oid + LEFT JOIN pg_class c ON b.relfilenode = pg_relation_filenode(c.oid) + LEFT JOIN pg_namespace n ON n.oid = c.relnamespace; +""", + 'columns': [ + {'name': 'db', 'type': 'tag'}, + {'name': 'schema', 'type': 'tag_not_null'}, + {'name': 'relation', 'type': 'tag_not_null'}, + {'name': 'used_buffers', 'type': 'gauge'}, + {'name': 'unused_buffers', 'type': 'gauge'}, + {'name': 'usage_count', 'type': 'gauge'}, + {'name': 'dirty_buffers', 'type': 'gauge'}, + {'name': 'pinning_backends', 'type': 'gauge'}, + ], + 'metric_prefix': 'postgresql.buffercache', +} + # The metrics we retrieve from pg_stat_activity when the postgres version >= 9.6 ACTIVITY_METRICS_9_6 = [ "SUM(CASE WHEN xact_start IS NOT NULL THEN 1 ELSE 0 END)", diff --git a/postgres/metadata.csv b/postgres/metadata.csv index 1bbf436d29211..060c22fb45c1b 100644 --- a/postgres/metadata.csv +++ b/postgres/metadata.csv @@ -25,6 +25,11 @@ postgresql.bgwriter.maxwritten_clean,count,,,,The number of times the background postgresql.bgwriter.sync_time,count,,millisecond,,The total amount of checkpoint processing time spent synchronizing files to disk.,0,postgres,bgw sync time, postgresql.bgwriter.write_time,count,,millisecond,,The total amount of checkpoint processing time spent writing files to disk.,0,postgres,bgw wrt time, postgresql.buffer_hit,gauge,,hit,second,"The number of times disk blocks were found in the buffer cache, preventing the need to read from the database. This metric is tagged with db.",1,postgres,buff hit, +postgresql.buffercache.dirty_buffers,gauge,,buffer,,"Number of dirty shared buffers. pg_buffercache extension needs to be installed. This metric is tagged by db, schema and relation.",0,postgres,buffercache dirty buffers, +postgresql.buffercache.pinning_backends,gauge,,,,"Number of backends pinning shared buffers. pg_buffercache extension needs to be installed. This metric is tagged by db, schema and relation.",0,postgres,buffercache pinning backends, +postgresql.buffercache.unused_buffers,gauge,,buffer,,"Number of unused shared buffers. pg_buffercache extension needs to be installed.",0,postgres,buffercache unused buffers, +postgresql.buffercache.usage_count,gauge,,,,"Sum of shared buffers' usage_count. pg_buffercache extension needs to be installed. This metric is tagged by db, schema and relation.",0,postgres,buffercache usage count, +postgresql.buffercache.used_buffers,gauge,,buffer,,"Number of shared buffers. pg_buffercache extension needs to be installed. This metric is tagged by db, schema and relation.",0,postgres,buffercache buffers, postgresql.checksums.checksum_failures,count,,,,"The number of checksum failures in this database. This metric is tagged with db.",0,postgres,checksums, postgresql.checksums.enabled,count,,,,"Whether database checksums are enabled. Value is always 1 and tagged with enabled:true or enabled:false. This metric is tagged with db.",0,postgres,checksums.enabled, postgresql.cluster_vacuum.heap_blks_scanned,gauge,,block,,"Number of heap blocks scanned. This counter only advances when the phase is seq scanning heap. Only available with PostgreSQL 12 and newer. This metric is tagged with db, table, command, phase, index.",0,postgres,postgres cluster blk_scanned, diff --git a/postgres/tests/common.py b/postgres/tests/common.py index cd3823a17eb9a..dc639919f655f 100644 --- a/postgres/tests/common.py +++ b/postgres/tests/common.py @@ -119,10 +119,13 @@ def _iterate_metric_name(query): if 'columns' in query: + metric_prefix = '' + if 'metric_prefix' in query: + metric_prefix = f'{query["metric_prefix"]}.' for column in query['columns']: if column['type'].startswith('tag'): continue - yield column['name'] + yield f'{metric_prefix}{column["name"]}' else: for metric in query['metrics'].values(): yield metric[0] diff --git a/postgres/tests/compose/resources/02_setup.sh b/postgres/tests/compose/resources/02_setup.sh index 8c38306c57d7b..aca2c6b034b14 100755 --- a/postgres/tests/compose/resources/02_setup.sh +++ b/postgres/tests/compose/resources/02_setup.sh @@ -12,6 +12,7 @@ EOSQL fi psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" "datadog_test" <<-'EOSQL' + CREATE EXTENSION pg_buffercache SCHEMA public; CREATE EXTENSION pg_stat_statements SCHEMA public; GRANT SELECT ON pg_stat_statements TO datadog; diff --git a/postgres/tests/test_pg_integration.py b/postgres/tests/test_pg_integration.py index 5fce2689bc154..f05e39fb9878f 100644 --- a/postgres/tests/test_pg_integration.py +++ b/postgres/tests/test_pg_integration.py @@ -14,7 +14,7 @@ from datadog_checks.base.stubs import datadog_agent from datadog_checks.postgres import PostgreSql from datadog_checks.postgres.__about__ import __version__ -from datadog_checks.postgres.util import DatabaseHealthCheckError, PartialFormatter, fmt +from datadog_checks.postgres.util import BUFFERCACHE_METRICS, DatabaseHealthCheckError, PartialFormatter, fmt from .common import ( COMMON_METRICS, @@ -25,6 +25,7 @@ POSTGRES_VERSION, USER_ADMIN, _get_expected_tags, + _iterate_metric_name, assert_metric_at_least, check_activity_metrics, check_bgw_metrics, @@ -339,6 +340,34 @@ def test_connections_metrics(aggregator, integration_check, pg_instance): aggregator.assert_metric('postgresql.connections', count=1, tags=expected_tags) +@requires_over_10 +def test_buffercache_metrics(aggregator, integration_check, pg_instance): + pg_instance['collect_buffercache_metrics'] = True + check = integration_check(pg_instance) + + with _get_superconn(pg_instance) as conn: + with conn.cursor() as cur: + # Generate some usage on persons relation + cur.execute('select * FROM persons;') + + check.check(pg_instance) + base_tags = _get_expected_tags(check, pg_instance) + + # Check specific persons relation + persons_tags = base_tags + ['relation:persons', 'db:datadog_test', 'schema:public'] + metrics_not_emitted_if_zero = ['postgresql.buffercache.pinning_backends', 'postgresql.buffercache.dirty_buffers'] + for metric in _iterate_metric_name(BUFFERCACHE_METRICS): + if metric in metrics_not_emitted_if_zero: + aggregator.assert_metric(metric, count=0, tags=persons_tags) + else: + aggregator.assert_metric(metric, count=1, tags=persons_tags) + + # Check metric reported for unused buffers + unused_buffers_tags = base_tags + ['db:shared'] + unused_metric = 'postgresql.buffercache.unused_buffers' + aggregator.assert_metric(unused_metric, count=1, tags=unused_buffers_tags) + + def test_locks_metrics_no_relations(aggregator, integration_check, pg_instance): """ Since 4.0.0, to prevent tag explosion, lock metrics are not collected anymore unless relations are specified From bfa72f97aa3f375c5cf0a166eb2e25f7fdc5f363 Mon Sep 17 00:00:00 2001 From: Zhengda Lu Date: Wed, 3 Jul 2024 12:26:45 -0400 Subject: [PATCH 11/68] [mongo] deprecate collStats command and use $collStats aggregation stage to collect collection metrics (#17961) * use collStats aggregation pipeline to collect collection metrics * add changelog * sort metadata * remove commented code * update test results with new metrics --- mongo/changelog.d/17961.added | 12 + mongo/changelog.d/17961.fixed | 1 + mongo/datadog_checks/mongo/api.py | 17 + .../mongo/collectors/coll_stats.py | 33 +- .../mongo/collectors/index_stats.py | 4 +- mongo/datadog_checks/mongo/metrics.py | 14 + mongo/metadata.csv | 535 ++++---- mongo/tests/fixtures/$collStats-bar | 586 +++++++++ mongo/tests/fixtures/$collStats-foo | 586 +++++++++ .../{indexStats-bar => $indexStats-bar} | 0 .../{indexStats-foo => $indexStats-foo} | 0 mongo/tests/fixtures/collstats-bar | 810 ------------ mongo/tests/fixtures/collstats-foo | 810 ------------ mongo/tests/fixtures/collstats-orders | 811 ------------ mongo/tests/mocked_api.py | 11 +- .../metrics-collection-autodiscover.json | 1162 +++++++++++++++-- mongo/tests/results/metrics-collection.json | 224 +++- 17 files changed, 2760 insertions(+), 2856 deletions(-) create mode 100644 mongo/changelog.d/17961.added create mode 100644 mongo/changelog.d/17961.fixed create mode 100644 mongo/tests/fixtures/$collStats-bar create mode 100644 mongo/tests/fixtures/$collStats-foo rename mongo/tests/fixtures/{indexStats-bar => $indexStats-bar} (100%) rename mongo/tests/fixtures/{indexStats-foo => $indexStats-foo} (100%) delete mode 100644 mongo/tests/fixtures/collstats-bar delete mode 100644 mongo/tests/fixtures/collstats-foo delete mode 100644 mongo/tests/fixtures/collstats-orders diff --git a/mongo/changelog.d/17961.added b/mongo/changelog.d/17961.added new file mode 100644 index 0000000000000..276be8bc1317b --- /dev/null +++ b/mongo/changelog.d/17961.added @@ -0,0 +1,12 @@ +Added new collection latency and query execution stats metrics. +- mongodb.collection.totalindexsize +- mongodb.collection.collectionscans.nontailable +- mongodb.collection.collectionscans.total +- mongodb.collection.commands.latency +- mongodb.collection.commands.opsps +- mongodb.collection.reads.latency +- mongodb.collection.reads.opsps +- mongodb.collection.transactions.latency +- mongodb.collection.transactions.opsps +- mongodb.collection.writes.latency +- mongodb.collection.writes.opsps diff --git a/mongo/changelog.d/17961.fixed b/mongo/changelog.d/17961.fixed new file mode 100644 index 0000000000000..e01842a7a778a --- /dev/null +++ b/mongo/changelog.d/17961.fixed @@ -0,0 +1 @@ +Replace deprecated collStats command with $collStats aggregation stage to collect collection metrics diff --git a/mongo/datadog_checks/mongo/api.py b/mongo/datadog_checks/mongo/api.py index d7edfa5576837..2248a90df1044 100644 --- a/mongo/datadog_checks/mongo/api.py +++ b/mongo/datadog_checks/mongo/api.py @@ -96,6 +96,23 @@ def current_op(self, session=None): # The $currentOp stage returns a cursor over a stream of documents, each of which reports a single operation. return self["admin"].aggregate([{'$currentOp': {'allUsers': True}}], session=session) + def coll_stats(self, db_name, coll_name, session=None): + return self[db_name][coll_name].aggregate( + [ + { + "$collStats": { + "latencyStats": {}, + "storageStats": {}, + "queryExecStats": {}, + } + }, + ], + session=session, + ) + + def index_stats(self, db_name, coll_name, session=None): + return self[db_name][coll_name].aggregate([{"$indexStats": {}}], session=session) + def _is_arbiter(self, options): cli = MongoClient(**options) is_master_payload = cli['admin'].command('isMaster') diff --git a/mongo/datadog_checks/mongo/collectors/coll_stats.py b/mongo/datadog_checks/mongo/collectors/coll_stats.py index 97f106d6dde74..d8f5e8e8b9e00 100644 --- a/mongo/datadog_checks/mongo/collectors/coll_stats.py +++ b/mongo/datadog_checks/mongo/collectors/coll_stats.py @@ -29,20 +29,25 @@ def _get_collections(self, api): return api.list_authorized_collections(self.db_name) def collect(self, api): - # Ensure that you're on the right db - db = api[self.db_name] coll_names = self._get_collections(api) - for coll_name in coll_names: # Grab the stats from the collection - payload = {'collection': db.command("collstats", coll_name)} - additional_tags = ["db:%s" % self.db_name, "collection:%s" % coll_name] - self._submit_payload(payload, additional_tags, COLLECTION_METRICS) - - # Submit the indexSizes metrics manually - index_sizes = payload['collection'].get('indexSizes', {}) - metric_name_alias = self._normalize("collection.indexSizes", AgentCheck.gauge) - for idx, val in iteritems(index_sizes): - # we tag the index - idx_tags = self.base_tags + additional_tags + ["index:%s" % idx] - self.gauge(metric_name_alias, val, tags=idx_tags) + for coll_stats in api.coll_stats(self.db_name, coll_name): + # Submit the metrics + storage_stats = coll_stats.get('storageStats', {}) + latency_stats = coll_stats.get('latencyStats', {}) + query_stats = coll_stats.get('queryExecStats', {}) + payload = {'collection': {**storage_stats, **latency_stats, **query_stats}} + additional_tags = ["db:%s" % self.db_name, "collection:%s" % coll_name] + if coll_stats.get('shard'): + # If the collection is sharded, add the shard tag + additional_tags.append("shard:%s" % coll_stats['shard']) + self._submit_payload(payload, additional_tags, COLLECTION_METRICS) + + # Submit the indexSizes metrics manually + index_sizes = storage_stats.get('indexSizes', {}) + metric_name_alias = self._normalize("collection.indexSizes", AgentCheck.gauge) + for idx, val in iteritems(index_sizes): + # we tag the index + idx_tags = self.base_tags + additional_tags + ["index:%s" % idx] + self.gauge(metric_name_alias, val, tags=idx_tags) diff --git a/mongo/datadog_checks/mongo/collectors/index_stats.py b/mongo/datadog_checks/mongo/collectors/index_stats.py index 78e1f73210cae..425087b1d0c07 100644 --- a/mongo/datadog_checks/mongo/collectors/index_stats.py +++ b/mongo/datadog_checks/mongo/collectors/index_stats.py @@ -23,12 +23,10 @@ def _get_collections(self, api): return api.list_authorized_collections(self.db_name) def collect(self, api): - db = api[self.db_name] coll_names = self._get_collections(api) - for coll_name in coll_names: try: - for stats in db[coll_name].aggregate([{"$indexStats": {}}], cursor={}): + for stats in api.index_stats(self.db_name, coll_name): idx_tags = self.base_tags + [ "name:{0}".format(stats.get('name', 'unknown')), "collection:{0}".format(coll_name), diff --git a/mongo/datadog_checks/mongo/metrics.py b/mongo/datadog_checks/mongo/metrics.py index eb7baedafa487..76138e837f1ce 100644 --- a/mongo/datadog_checks/mongo/metrics.py +++ b/mongo/datadog_checks/mongo/metrics.py @@ -313,6 +313,7 @@ } COLLECTION_METRICS = { + # collection storage stats 'collection.size': GAUGE, 'collection.avgObjSize': GAUGE, 'collection.count': GAUGE, @@ -321,6 +322,19 @@ 'collection.maxSize': GAUGE, 'collection.storageSize': GAUGE, 'collection.nindexes': GAUGE, + 'collection.totalIndexSize': GAUGE, + # collection latency stats + 'collection.reads.latency': GAUGE, + 'collection.reads.ops': RATE, + 'collection.writes.ops': RATE, + 'collection.writes.latency': GAUGE, + 'collection.commands.latency': GAUGE, + 'collection.commands.ops': RATE, + 'collection.transactions.latency': GAUGE, + 'collection.transactions.ops': RATE, + # collection query exec stats + 'collection.collectionScans.total': GAUGE, + 'collection.collectionScans.nonTailable': GAUGE, } """ diff --git a/mongo/metadata.csv b/mongo/metadata.csv index c5211575fcc5d..68d3612e29444 100644 --- a/mongo/metadata.csv +++ b/mongo/metadata.csv @@ -1,262 +1,273 @@ -metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric -mongodb.asserts.msgps,gauge,,assertion,second,Number of message assertions raised per second.,0,mongodb,asserts msg ps, -mongodb.asserts.regularps,gauge,,assertion,second,Number of regular assertions raised per second.,0,mongodb,asserts regular ps, -mongodb.asserts.rolloversps,gauge,,assertion,second,Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions.,0,mongodb,asserts rollovers ps, -mongodb.asserts.userps,gauge,,assertion,second,Number of user assertions raised per second.,0,mongodb,asserts user ps, -mongodb.asserts.warningps,gauge,,assertion,second,Number of warnings raised per second.,0,mongodb,asserts warning ps, -mongodb.backgroundflushing.average_ms,gauge,,millisecond,,Average time for each flush to disk.,-1,mongodb,background flushing average ms, -mongodb.backgroundflushing.flushesps,gauge,,flush,second,Number of times the database has flushed all writes to disk.,0,mongodb,background flushing flushes ps, -mongodb.backgroundflushing.last_ms,gauge,,millisecond,,Amount of time that the last flush operation took to complete.,-1,mongodb,background flushing last ms, -mongodb.backgroundflushing.total_ms,gauge,,millisecond,,Total number of time that the `mongod` processes have spent writing (i.e. flushing) data to disk.,0,mongodb,background flushing total ms, -mongodb.chunks.jumbo,gauge,,,,Total number of 'jumbo' chunks in the mongo cluster.,0,mongodb,, -mongodb.chunks.total,gauge,,,,Total number of chunks in the mongo cluster.,0,mongodb,, -mongodb.collection.avgobjsize,gauge,,byte,,The size of the average object in the collection in bytes.,0,mongodb,average object size in bytes, -mongodb.collection.capped,gauge,,record,,Whether or not the collection is capped.,0,mongodb,collection cap, -mongodb.collection.count,gauge,,item,,Total number of objects in the collection.,0,mongodb,number of objects in the collection, -mongodb.collection.indexes.accesses.ops,gauge,,event,,Number of time the index was used.,0,mongodb,index usage, -mongodb.collection.indexsizes,gauge,,byte,,Size of index in bytes.,0,mongodb,index size, -mongodb.collection.max,gauge,,document,,Maximum number of documents in a capped collection.,0,mongodb,max documents in capped collection, -mongodb.collection.maxsize,gauge,,byte,,Maximum size of a capped collection in bytes.,0,mongodb,max size of capped collection, -mongodb.collection.nindexes,gauge,,index,,Total number of indices on the collection.,0,mongodb,number of indices on collection, -mongodb.collection.size,gauge,,byte,,The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection.,0,mongodb,size of the the collection in bytes, -mongodb.collection.storagesize,gauge,,byte,,Total storage space allocated to this collection for document storage.,0,mongodb,storage space of collection, -mongodb.connection_pool.numascopedconnections,gauge,,connection,,Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster or replica set.,0,mongodb,, -mongodb.connection_pool.numclientconnections,gauge,,connection,,Reports the number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster or replica set.,0,mongodb,, -mongodb.connection_pool.totalavailable,gauge,,connection,,Reports the total number of available outgoing connections from the current mongos instance to other members of the sharded cluster or replica set.,0,mongodb,, -mongodb.connection_pool.totalcreatedps,gauge,,connection,second,Reports the total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster or replica set.,0,mongodb,, -mongodb.connection_pool.totalinuse,gauge,,connection,,Reports the total number of outgoing connections from the current mongod/mongos instance to other members of the sharded cluster or replica set that are currently in use.,0,mongodb,, -mongodb.connection_pool.totalrefreshing,gauge,,connection,,Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster or replica set that are currently being refreshed.,0,mongodb,, -mongodb.connections.available,gauge,,connection,,Number of unused available incoming connections the database can provide.,0,mongodb,connections available, -mongodb.connections.current,gauge,,connection,,Number of connections to the database server from clients.,0,mongodb,connections current, -mongodb.connections.totalcreated,gauge,,connection,,Total number of connections created.,0,mongodb,connections created, -mongodb.cursors.timedout,gauge,,cursor,,Total number of cursors that have timed out since the server process started.,0,mongodb,cursors timed out, -mongodb.cursors.totalopen,gauge,,cursor,,Number of cursors that MongoDB is maintaining for clients,0,mongodb,cursors open, -mongodb.dbs,gauge,,item,,Total number of existing databases,0,mongodb,databases, -mongodb.dur.commits,gauge,,transaction,,Number of transactions written to the journal during the last journal group commit interval.,0,mongodb,dur commits, -mongodb.dur.commitsinwritelock,gauge,,commit,,Count of the commits that occurred while a write lock was held.,0,mongodb,dur commits in write lock, -mongodb.dur.compression,gauge,,fraction,,Compression ratio of the data written to the journal.,1,mongodb,dur compression, -mongodb.dur.earlycommits,gauge,,commit,,Number of times MongoDB requested a commit before the scheduled journal group commit interval. ,0,mongodb,dur early commits, -mongodb.dur.journaledmb,gauge,,mebibyte,,Amount of data written to journal during the last journal group commit interval.,0,mongodb,dur journaled mb, -mongodb.dur.timems.commits,gauge,,millisecond,,Amount of time spent for commits.,-1,mongodb,dur time ms commits, -mongodb.dur.timems.commitsinwritelock,gauge,,millisecond,,Amount of time spent for commits that occurred while a write lock was held.,-1,mongodb,dur time ms commits in write lock, -mongodb.dur.timems.dt,gauge,,millisecond,,Amount of time over which MongoDB collected the `dur.timeMS` data.,-1,mongodb,dur time ms dt, -mongodb.dur.timems.preplogbuffer,gauge,,millisecond,,Amount of time spent preparing to write to the journal. ,-1,mongodb,dur time ms prep log buffer, -mongodb.dur.timems.remapprivateview,gauge,,millisecond,,Amount of time spent remapping copy-on-write memory mapped views.,-1,mongodb,dur time ms remap private view, -mongodb.dur.timems.writetodatafiles,gauge,,millisecond,,Amount of time spent writing to data files after journaling.,-1,mongodb,dur time ms write to data files, -mongodb.dur.timems.writetojournal,gauge,,millisecond,,Amount of time spent writing to the journal,-1,mongodb,dur time ms write to journal, -mongodb.dur.writetodatafilesmb,gauge,,mebibyte,,Amount of data written from journal to the data files during the last journal group commit interval.,-1,mongodb,dur write to data files mb, -mongodb.extra_info.heap_usage_bytesps,gauge,,byte,second,The total size in bytes of heap space used by the database process. Available on Unix/Linux systems only.,0,mongodb,heap usage bytesps, -mongodb.extra_info.page_faultsps,gauge,,fault,second,Number of page faults per second that require disk operations.,0,mongodb,pagefaults ps, -mongodb.fsynclocked,gauge,,,,Metric representing the fsynclock state of a database. 1 if it's locked and 0 if it's not.,0,mongodb,fsynclocked, -mongodb.globallock.activeclients.readers,gauge,,connection,,Count of the active client connections performing read operations.,0,mongodb,active clients readers, -mongodb.globallock.activeclients.total,gauge,,connection,,Total number of active client connections to the database.,0,mongodb,active clients total, -mongodb.globallock.activeclients.writers,gauge,,connection,,Count of active client connections performing write operations.,0,mongodb,active clients writers, -mongodb.globallock.currentqueue.readers,gauge,,operation,,Number of operations that are currently queued and waiting for the read lock.,0,mongodb,global lock current queue readers, -mongodb.globallock.currentqueue.total,gauge,,operation,,Total number of operations queued waiting for the lock.,0,mongodb,global lock current queue total, -mongodb.globallock.currentqueue.writers,gauge,,operation,,Number of operations that are currently queued and waiting for the write lock.,0,mongodb,global lock current queue writers, -mongodb.globallock.locktime,gauge,,millisecond,,Time since the database last started that the globalLock has been held.,0,mongodb,global lock lock time, -mongodb.globallock.ratio,gauge,,fraction,,Ratio of the time that the globalLock has been held to the total time since it was created.,-1,mongodb,globallock ratio, -mongodb.globallock.totaltime,gauge,,microsecond,,Time since the database last started and created the global lock.,0,mongodb,global lock total time, -mongodb.indexcounters.accessesps,gauge,,event,second,Number of times that operations have accessed indexes per second.,0,mongodb,index counters accesses ps, -mongodb.indexcounters.hitsps,gauge,,hit,second,Number of times per second that an index has been accessed and mongod is able to return the index from memory.,0,mongodb,indexcounters hits ps, -mongodb.indexcounters.missesps,gauge,,miss,second,Number of times per second that an operation attempted to access an index that was not in memory.,0,mongodb,indexcounters misses ps, -mongodb.indexcounters.missratio,gauge,,fraction,,Ratio of index hits to misses.,0,mongodb,indexcounters miss ratio, -mongodb.indexcounters.resetsps,gauge,,event,second,Number of times per second the index counters have been reset.,0,mongodb,indexcounters resets ps, -mongodb.locks.collection.acquirecount.exclusiveps,gauge,,lock,second,Number of times the collection lock type was acquired in the Exclusive (X) mode.,0,mongodb,locks collection acquire count exclusive, -mongodb.locks.collection.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the collection lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks collection acquire count intent_exclusive, -mongodb.locks.collection.acquirecount.intent_sharedps,gauge,,lock,second,Number of times the collection lock type was acquired in the Intent Shared (IS) mode.,0,mongodb,locks collection acquire count intent_shared, -mongodb.locks.collection.acquirecount.sharedps,gauge,,lock,second,Number of times the collection lock type was acquired in the Shared (S) mode.,0,mongodb,locks collection acquire count shared, -mongodb.locks.collection.acquirewaitcount.exclusiveps,gauge,,wait,second,Number of times the collection lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks collection wait count exclusive, -mongodb.locks.collection.acquirewaitcount.sharedps,gauge,,wait,second,Number of times the collection lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks collection wait count shared, -mongodb.locks.collection.timeacquiringmicros.exclusiveps,gauge,,fraction,,Wait time for the collection lock type acquisitions in the Exclusive (X) mode.,-1,mongodb,locks collection wait time exclusive, -mongodb.locks.collection.timeacquiringmicros.sharedps,gauge,,fraction,,Wait time for the collection lock type acquisitions in the Shared (S) mode.,-1,mongodb,locks collection wait time shared, -mongodb.locks.database.acquirecount.exclusiveps,gauge,,lock,second,Number of times the database lock type was acquired in the Exclusive (X) mode.,0,mongodb,locks database acquire count exclusive, -mongodb.locks.database.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the database lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks database acquire count intent_exclusive, -mongodb.locks.database.acquirecount.intent_sharedps,gauge,,lock,second,Number of times the database lock type was acquired in the Intent Shared (IS) mode.,0,mongodb,locks database acquire count intent_shared, -mongodb.locks.database.acquirecount.sharedps,gauge,,lock,second,Number of times the database lock type was acquired in the Shared (S) mode.,0,mongodb,locks database acquire count shared, -mongodb.locks.database.acquirewaitcount.exclusiveps,gauge,,wait,second,Number of times the database lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks database wait count exclusive, -mongodb.locks.database.acquirewaitcount.intent_exclusiveps,gauge,,wait,second,Number of times the database lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks database wait count intent_exclusive, -mongodb.locks.database.acquirewaitcount.intent_sharedps,gauge,,wait,second,Number of times the database lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks database wait count intent_shared, -mongodb.locks.database.acquirewaitcount.sharedps,gauge,,wait,second,Number of times the database lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks database wait count shared, -mongodb.locks.database.timeacquiringmicros.exclusiveps,gauge,,fraction,,Wait time for the database lock type acquisitions in the Exclusive (X) mode.,-1,mongodb,locks database wait time exclusive, -mongodb.locks.database.timeacquiringmicros.intent_exclusiveps,gauge,,fraction,,Wait time for the database lock type acquisitions in the Intent Exclusive (IX) mode.,-1,mongodb,locks database wait time intent_exclusive, -mongodb.locks.database.timeacquiringmicros.intent_sharedps,gauge,,fraction,,Wait time for the database lock type acquisitions in the Intent Shared (IS) mode.,-1,mongodb,locks database wait time intent_shared, -mongodb.locks.database.timeacquiringmicros.sharedps,gauge,,fraction,,Wait time for the database lock type acquisitions in the Shared (S) mode.,-1,mongodb,locks database wait time shared, -mongodb.locks.global.acquirecount.exclusiveps,gauge,,lock,second,Number of times the global lock type was acquired in the Exclusive (X) mode.,0,mongodb,locks global acquire count exclusive, -mongodb.locks.global.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the global lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks global acquire count intent_exclusive, -mongodb.locks.global.acquirecount.intent_sharedps,gauge,,lock,second,Number of times the global lock type was acquired in the Intent Shared (IS) mode.,0,mongodb,locks global acquire count intent_shared, -mongodb.locks.global.acquirecount.sharedps,gauge,,lock,second,Number of times the global lock type was acquired in the Shared (S) mode.,0,mongodb,locks global acquire count shared, -mongodb.locks.global.acquirewaitcount.exclusiveps,gauge,,wait,second,Number of times the global lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks global wait count exclusive, -mongodb.locks.global.acquirewaitcount.intent_exclusiveps,gauge,,wait,second,Number of times the global lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks global wait count intent_exclusive, -mongodb.locks.global.acquirewaitcount.intent_sharedps,gauge,,wait,second,Number of times the global lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks global wait count intent_shared, -mongodb.locks.global.acquirewaitcount.sharedps,gauge,,wait,second,Number of times the global lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks global wait count shared, -mongodb.locks.global.timeacquiringmicros.exclusiveps,gauge,,fraction,,Wait time for the global lock type acquisitions in the Exclusive (X) mode.,-1,mongodb,locks global wait time exclusive, -mongodb.locks.global.timeacquiringmicros.intent_exclusiveps,gauge,,fraction,,Wait time for the global lock type acquisitions in the Intent Exclusive (IX) mode.,-1,mongodb,locks global wait time intent_exclusive, -mongodb.locks.global.timeacquiringmicros.intent_sharedps,gauge,,fraction,,Wait time for the global lock type acquisitions in the Intent Shared (IS) mode.,-1,mongodb,locks global wait time intent_shared, -mongodb.locks.global.timeacquiringmicros.sharedps,gauge,,fraction,,Wait time for the global lock type acquisitions in the Shared (S) mode.,-1,mongodb,locks global wait time shared, -mongodb.locks.metadata.acquirecount.exclusiveps,gauge,,lock,second,Number of times the metadata lock type was acquired in the Exclusive (X) mode.,0,mongodb,locks metadata acquire count exclusive, -mongodb.locks.metadata.acquirecount.sharedps,gauge,,lock,second,Number of times the metadata lock type was acquired in the Shared (S) mode.,0,mongodb,locks metadata acquire count shared, -mongodb.locks.mmapv1journal.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the MMAPv1 storage engine lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks mmapv1journal acquire count intent_exclusive, -mongodb.locks.mmapv1journal.acquirecount.intent_sharedps,gauge,,lock,second,Number of times the MMAPv1 storage engine lock type was acquired in the Intent Shared (IS) mode.,0,mongodb,locks mmapv1journal acquire count intent_shared, -mongodb.locks.mmapv1journal.acquirewaitcount.intent_exclusiveps,gauge,,wait,second,Number of times the MMAPv1 storage engine lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks mmapv1journal wait count intent_exclusive, -mongodb.locks.mmapv1journal.acquirewaitcount.intent_sharedps,gauge,,wait,second,Number of times the MMAPv1 storage engine lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks mmapv1journal wait count intent_shared, -mongodb.locks.mmapv1journal.timeacquiringmicros.intent_exclusiveps,gauge,,fraction,,Wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Exclusive (IX) mode.,-1,mongodb,locks mmapv1journal wait time intent_exclusive, -mongodb.locks.mmapv1journal.timeacquiringmicros.intent_sharedps,gauge,,fraction,,Wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Shared (IS) mode.,-1,mongodb,locks mmapv1journal wait time intent_shared, -mongodb.locks.oplog.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the oplog lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks oplog acquire count intent_exclusive, -mongodb.locks.oplog.acquirecount.sharedps,gauge,,lock,second,Number of times the oplog lock type was acquired in the Shared (S) mode.,0,mongodb,locks oplog acquire count shared, -mongodb.locks.oplog.acquirewaitcount.intent_exclusiveps,gauge,,wait,second,Number of times the oplog lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks oplog wait count intent_exclusive, -mongodb.locks.oplog.acquirewaitcount.sharedps,gauge,,wait,second,Number of times the oplog lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks oplog wait count shared, -mongodb.locks.oplog.timeacquiringmicros.intent_exclusiveps,gauge,,fraction,,Wait time for the oplog lock type acquisitions in the Intent Exclusive (IX) mode.,-1,mongodb,locks oplog wait time intent_exclusive, -mongodb.locks.oplog.timeacquiringmicros.sharedps,gauge,,fraction,,Wait time for the oplog lock type acquisitions in the Shared (S) mode.,-1,mongodb,locks oplog wait time shared, -mongodb.mem.bits,gauge,,mebibyte,,Size of the in-memory storage engine.,0,mongodb,mem bits, -mongodb.mem.mapped,gauge,,mebibyte,,Amount of mapped memory by the database.,0,mongodb,mem mapped, -mongodb.mem.mappedwithjournal,gauge,,mebibyte,,"The amount of mapped memory, including the memory used for journaling.",0,mongodb,memory mapped with journal, -mongodb.mem.resident,gauge,,mebibyte,,Amount of memory currently used by the database process.,0,mongodb,mem resident, -mongodb.mem.virtual,gauge,,mebibyte,,Amount of virtual memory used by the mongod process.,0,mongodb,mem virtual, -mongodb.metrics.commands.count.failedps,gauge,,command,second,Number of times count failed,-1,mongodb,cmd count failed, -mongodb.metrics.commands.count.total,gauge,,command,,Number of times count executed,0,mongodb,cmd count executed, -mongodb.metrics.commands.createindexes.failedps,gauge,,command,second,Number of times createIndexes failed,-1,mongodb,cmd createIndexes failed, -mongodb.metrics.commands.createindexes.total,gauge,,command,,Number of times createIndexes executed,0,mongodb,cmd createIndexes executed, -mongodb.metrics.commands.delete.failedps,gauge,,command,second,Number of times delete failed,-1,mongodb,cmd delete failed, -mongodb.metrics.commands.delete.total,gauge,,command,,Number of times delete executed,0,mongodb,cmd delete executed, -mongodb.metrics.commands.eval.failedps,gauge,,command,second,Number of times eval failed,-1,mongodb,cmd eval failed, -mongodb.metrics.commands.eval.total,gauge,,command,,Number of times eval executed,0,mongodb,cmd eval executed, -mongodb.metrics.commands.findandmodify.failedps,gauge,,command,second,Number of times findAndModify failed,-1,mongodb,cmd findAndModify failed, -mongodb.metrics.commands.findandmodify.total,gauge,,command,,Number of times findAndModify executed,0,mongodb,cmd findAndModify executed, -mongodb.metrics.commands.insert.failedps,gauge,,command,second,Number of times insert failed,-1,mongodb,cmd insert failed, -mongodb.metrics.commands.insert.total,gauge,,command,,Number of times insert executed,0,mongodb,cmd insert executed, -mongodb.metrics.commands.update.failedps,gauge,,command,second,Number of times update failed,-1,mongodb,cmd update failed, -mongodb.metrics.commands.update.total,gauge,,command,,Number of times update executed,0,mongodb,cmd update executed, -mongodb.metrics.cursor.open.notimeout,gauge,,cursor,,Number of open cursors with the option `DBQuery.Option.noTimeout` set to prevent timeout after a period of inactivity.,-1,mongodb,cursors open no timeout, -mongodb.metrics.cursor.open.pinned,gauge,,cursor,,Number of pinned open cursors.,0,mongodb,cursors open pinned, -mongodb.metrics.cursor.open.total,gauge,,cursor,,Number of cursors that MongoDB is maintaining for clients.,-1,mongodb,open cursors, -mongodb.metrics.cursor.timedoutps,gauge,,cursor,second,"Number of cursors that time out, per second.",-1,mongodb,timed out cursors per s, -mongodb.metrics.document.deletedps,gauge,,document,second,Number of documents deleted per second.,0,mongodb,document deleted ps, -mongodb.metrics.document.insertedps,gauge,,document,second,Number of documents inserted per second.,0,mongodb,document inserted ps, -mongodb.metrics.document.returnedps,gauge,,document,second,Number of documents returned by queries per second.,0,mongodb,document returned ps, -mongodb.metrics.document.updatedps,gauge,,document,second,Number of documents updated per second.,0,mongodb,document updated ps, -mongodb.metrics.getlasterror.wtime.numps,gauge,,operation,second,Number of getLastError operations per second with a specified write concern (i.e. w) that wait for one or more members of a replica set to acknowledge the write operation.,0,mongodb,getlasterror wtime numps, -mongodb.metrics.getlasterror.wtime.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) that the mongod has spent performing getLastError operations with write concern (i.e. w) that wait for one or more members of a replica set to acknowledge the write operation.,0,mongodb,getlasterror wtime totalmillis ps, -mongodb.metrics.getlasterror.wtimeoutsps,gauge,,event,second,Number of times per second that write concern operations have timed out as a result of the wtimeout threshold to getLastError,0,mongodb,getlasterror wtimeouts ps, -mongodb.metrics.operation.fastmodps,gauge,,operation,second,Number of update operations per second that neither cause documents to grow nor require updates to the index.,0,mongodb,operation fastmod ps, -mongodb.metrics.operation.idhackps,gauge,,query,second,Number of queries per second that contain the _id field.,0,mongodb,operation idhack ps, -mongodb.metrics.operation.scanandorderps,gauge,,query,second,Number of queries per second that return sorted numbers that cannot perform the sort operation using an index.,0,mongodb,operation scanandorder ps, -mongodb.metrics.operation.writeconflictsps,gauge,,event,second,Number of times per second that write concern operations has encounter a conflict.,0,mongodb,write conflict, -mongodb.metrics.queryexecutor.scannedobjectsps,gauge,,operation,second,Number of documents scanned per second during queries and query-plan evaluation.,0,mongodb,queryexecutor scanned object ps, -mongodb.metrics.queryexecutor.scannedps,gauge,,operation,second,Number of index items scanned per second during queries and query-plan evaluation.,0,mongodb,queryexecutor scanned ps, -mongodb.metrics.record.movesps,gauge,,operation,second,Number of times per second documents move within the on-disk representation of the MongoDB data set.,0,mongodb,record moves ps, -mongodb.metrics.repl.apply.batches.numps,gauge,,operation,second,Number of batches applied across all databases per second.,0,mongodb,repl apply batches num ps, -mongodb.metrics.repl.apply.batches.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) the mongod has spent applying operations from the oplog.,0,mongodb,repl apply batches totalmillis ps, -mongodb.metrics.repl.apply.opsps,gauge,,operation,second,Number of oplog operations applied per second.,0,mongodb,repl apply ops ps, -mongodb.metrics.repl.buffer.count,gauge,,operation,,Number of operations in the oplog buffer.,0,mongodb,repl buffer count, -mongodb.metrics.repl.buffer.maxsizebytes,gauge,,byte,,Maximum size of the buffer.,0,mongodb,repl buffer maxsize bytes, -mongodb.metrics.repl.buffer.sizebytes,gauge,,byte,,Current size of the contents of the oplog buffer.,0,mongodb,repl buffer size bytes, -mongodb.metrics.repl.network.bytesps,gauge,,byte,second,Amount of data read from the replication sync source per second.,0,mongodb,repl network bytes ps, -mongodb.metrics.repl.network.getmores.numps,gauge,,operation,second,Number of getmore operations per second.,0,mongodb,repl network getmores num ps, -mongodb.metrics.repl.network.getmores.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) required to collect data from getmore operations.,0,mongodb,repl network getmores totalmillis ps, -mongodb.metrics.repl.network.opsps,gauge,,operation,second,Number of operations read from the replication source per second.,0,mongodb,repl network ops ps, -mongodb.metrics.repl.network.readerscreatedps,gauge,,process,second,Number of oplog query processes created per second.,0,mongodb,repl network readerscreated ps, -mongodb.metrics.repl.preload.docs.numps,gauge,,document,second,Number of documents loaded per second during the pre-fetch stage of replication.,0,mongodb,repl docs nums, -mongodb.metrics.repl.preload.docs.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication.,0,mongodb,repl docs nums, -mongodb.metrics.repl.preload.indexes.numps,gauge,,document,second,Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication.,0,mongodb,repl docs nums, -mongodb.metrics.repl.preload.indexes.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication.,0,mongodb,repl docs nums, -mongodb.metrics.ttl.deleteddocumentsps,gauge,,document,second,Number of documents deleted from collections with a ttl index per second.,0,mongodb,ttl deleted docs ps, -mongodb.metrics.ttl.passesps,gauge,,operation,second,Number of times per second the background process removes documents from collections with a ttl index.,0,mongodb,ttl passes ps, -mongodb.network.bytesinps,gauge,,byte,second,The number of bytes that reflects the amount of network traffic received by this database.,0,mongodb,bytes inps, -mongodb.network.bytesoutps,gauge,,byte,second,The number of bytes that reflects the amount of network traffic sent from this database.,0,mongodb,bytes outps, -mongodb.network.numrequestsps,gauge,,request,second,Number of distinct requests that the server has received.,0,mongodb,num requests ps, -mongodb.opcounters.commandps,gauge,,command,second,Total number of commands per second issued to the database.,0,mongodb,opcounters command ps, -mongodb.opcounters.deleteps,gauge,,operation,second,Number of delete operations per second.,0,mongodb,opcounters delete ps, -mongodb.opcounters.getmoreps,gauge,,operation,second,Number of getmore operations per second.,0,mongodb,opcounters getmore ps, -mongodb.opcounters.insertps,gauge,,operation,second,Number of insert operations per second.,0,mongodb,opcounters insert ps, -mongodb.opcounters.queryps,gauge,,query,second,Total number of queries per second.,0,mongodb,opcounters query ps, -mongodb.opcounters.updateps,gauge,,operation,second,Number of update operations per second.,0,mongodb,opcounters update ps, -mongodb.opcountersrepl.commandps,gauge,,command,second,Total number of replicated commands issued to the database per second.,0,mongodb,opcountersrepl command ps, -mongodb.opcountersrepl.deleteps,gauge,,operation,second,Number of replicated delete operations per second.,0,mongodb,opcountersrepl delete ps, -mongodb.opcountersrepl.getmoreps,gauge,,operation,second,Number of replicated getmore operations per second.,0,mongodb,opcountersrepl getmore ps, -mongodb.opcountersrepl.insertps,gauge,,operation,second,Number of replicated insert operations per second.,0,mongodb,opcountersrepl insert ps, -mongodb.opcountersrepl.queryps,gauge,,query,second,Total number of replicated queries per second.,0,mongodb,opcountersrepl query ps, -mongodb.opcountersrepl.updateps,gauge,,operation,second,Number of replicated update operations per second.,0,mongodb,opcountersrepl update ps, -mongodb.oplatencies.commands.latency,gauge,,microsecond,,Total combined latency for database commands.,0,mongodb,oplatencies commands, -mongodb.oplatencies.commands.latencyps,gauge,,command,second,Total latency statistics for database commands per second (deprecated).,0,mongodb,oplatencies commands ps, -mongodb.oplatencies.reads.latency,gauge,,microsecond,,Total combined latency for read requests.,0,mongodb,oplatencies reads, -mongodb.oplatencies.reads.latencyps,gauge,,operation,second,Total latency statistics for read requests per second (deprecated).,0,mongodb,oplatencies reads ps, -mongodb.oplatencies.writes.latency,gauge,,microsecond,,Total combined latency for write requests.,0,mongodb,oplatencies writes, -mongodb.oplatencies.writes.latencyps,gauge,,operation,second,Total latency statistics for write operations per second (deprecated).,0,mongodb,oplatencies writes ps, -mongodb.oplog.logsizemb,gauge,,mebibyte,,Total size of the oplog.,0,mongodb,oplog log size mb, -mongodb.oplog.timediff,gauge,,second,,Oplog window: difference between the first and last operation in the oplog.,1,mongodb,oplog timediff, -mongodb.oplog.usedsizemb,gauge,,mebibyte,,Total amount of space used by the oplog.,0,mongodb,oplog used size mb, -mongodb.replset.health,gauge,,,,Member health value of the replica set: conveys if the member is up (i.e. 1) or down (i.e. 0).,1,mongodb,replset health, -mongodb.replset.optime_lag,gauge,,second,,Delay between a write operation on the primary and its copy to a secondary. Computed only on primary and tagged by 'member'.,-1,mongodb,replication lag, -mongodb.replset.replicationlag,gauge,,second,,"Delay between a write operation on the primary and its copy to a secondary. Computed on each node and tagged by 'host', but may not be representative of cluster health. Negative values do not indicate that the secondary is ahead of the primary. To use a more up-to-date metric, use mongodb.replset.optime_lag instead.",-1,mongodb,replication lag, -mongodb.replset.state,gauge,,,,State of a replica that reflects its disposition within the set.,0,mongodb,replset state, -mongodb.replset.votefraction,gauge,,fraction,,Fraction of votes a server will cast in a replica set election.,0,mongodb,votes fraction, -mongodb.replset.votes,gauge,,item,,The number of votes a server will cast in a replica set election.,0,mongodb,replset votes, -mongodb.sessions.count,gauge,,session,,Number of active sessions for all users.,0,mongodb,, -mongodb.stats.avgobjsize,gauge,,byte,,The average size of each document in bytes.,0,mongodb,stats avgobjsize, -mongodb.stats.collections,gauge,,,,Contains a count of the number of collections in that database.,0,mongodb,stats collections, -mongodb.stats.datasize,gauge,,byte,,Total size of the data held in this database including the padding factor.,0,mongodb,stats datasize, -mongodb.stats.filesize,gauge,,byte,,Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine).,0,mongodb,stats filesize, -mongodb.stats.indexes,gauge,,index,,Total number of indexes across all collections in the database.,0,mongodb,stats indexes, -mongodb.stats.indexsize,gauge,,byte,,Total size of all indexes created on this database.,0,mongodb,stats indexsize, -mongodb.stats.numextents,gauge,,,,Contains a count of the number of extents in the database across all collections.,0,mongodb,stats numextents, -mongodb.stats.objects,gauge,,object,,Number of objects (documents) in the database across all collections.,0,mongodb,stats objects, -mongodb.stats.storagesize,gauge,,byte,,Total amount of space allocated to collections in this database for document storage.,0,mongodb,stats storagesize, -mongodb.tcmalloc.generic.current_allocated_bytes,gauge,,byte,,Number of bytes used by the application.,0,mongodb,, -mongodb.tcmalloc.generic.heap_size,gauge,,byte,,Bytes of system memory reserved by TCMalloc.,0,mongodb,, -mongodb.tcmalloc.tcmalloc.aggressive_memory_decommit,gauge,,,,Status of aggressive memory decommit mode.,0,mongodb,, -mongodb.tcmalloc.tcmalloc.central_cache_free_bytes,gauge,,byte,,Number of free bytes in the central cache.,0,mongodb,, -mongodb.tcmalloc.tcmalloc.current_total_thread_cache_bytes,gauge,,byte,,Number of bytes used across all thread caches.,0,mongodb,, -mongodb.tcmalloc.tcmalloc.max_total_thread_cache_bytes,gauge,,byte,,Upper limit on total number of bytes stored across all per-thread caches.,0,mongodb,, -mongodb.tcmalloc.tcmalloc.pageheap_free_bytes,gauge,,byte,,Number of bytes in free mapped pages in page heap.,0,mongodb,, -mongodb.tcmalloc.tcmalloc.pageheap_unmapped_bytes,gauge,,byte,,Number of bytes in free unmapped pages in page heap.,0,mongodb,, -mongodb.tcmalloc.tcmalloc.spinlock_total_delay_ns,gauge,,nanosecond,,Spinlock delay time.,-1,mongodb,, -mongodb.tcmalloc.tcmalloc.thread_cache_free_bytes,gauge,,byte,,Number of free bytes in thread caches.,0,mongodb,, -mongodb.tcmalloc.tcmalloc.transfer_cache_free_bytes,gauge,,byte,,Number of free bytes that are waiting to be transferred between the central cache and a thread cache.,0,mongodb,, -mongodb.uptime,gauge,,second,,Number of seconds that the mongos or mongod process has been active.,0,mongodb,uptime, -mongodb.usage.commands.count,gauge,,command,,Number of commands since server start (deprecated),0,mongodb,, -mongodb.usage.commands.countps,gauge,,command,second,Number of commands per second,0,mongodb,, -mongodb.usage.commands.time,gauge,,microsecond,,Total time spent performing commands in microseconds,-1,mongodb,, -mongodb.usage.getmore.count,gauge,,fetch,,Number of getmore since server start (deprecated),0,mongodb,, -mongodb.usage.getmore.countps,gauge,,fetch,second,Number of getmore per second,0,mongodb,, -mongodb.usage.getmore.time,gauge,,microsecond,,Total time spent performing getmore in microseconds,-1,mongodb,, -mongodb.usage.insert.count,gauge,,commit,,Number of inserts since server start (deprecated),0,mongodb,, -mongodb.usage.insert.countps,gauge,,commit,second,Number of inserts per second,0,mongodb,, -mongodb.usage.insert.time,gauge,,microsecond,,Total time spent performing inserts in microseconds,-1,mongodb,, -mongodb.usage.queries.count,gauge,,query,,Number of queries since server start (deprecated),0,mongodb,, -mongodb.usage.queries.countps,gauge,,query,second,Number of queries per second,0,mongodb,, -mongodb.usage.queries.time,gauge,,microsecond,,Total time spent performing queries in microseconds,-1,mongodb,, -mongodb.usage.readlock.count,gauge,,lock,,Number of read locks since server start (deprecated),0,mongodb,, -mongodb.usage.readlock.countps,gauge,,lock,second,Number of read locks per second,0,mongodb,, -mongodb.usage.readlock.time,gauge,,microsecond,,Total time spent performing read locks in microseconds,-1,mongodb,, -mongodb.usage.remove.count,gauge,,commit,,Number of removes since server start (deprecated),0,mongodb,, -mongodb.usage.remove.countps,gauge,,commit,second,Number of removes per second,0,mongodb,, -mongodb.usage.remove.time,gauge,,microsecond,,Total time spent performing removes in microseconds,-1,mongodb,, -mongodb.usage.total.count,gauge,,command,,Number of operations since server start (deprecated),0,mongodb,, -mongodb.usage.total.countps,gauge,,command,second,Number of operations per second,0,mongodb,, -mongodb.usage.total.time,gauge,,microsecond,,Total time spent holding locks in microseconds,-1,mongodb,, -mongodb.usage.update.count,gauge,,commit,,Number of updates since server start (deprecated),0,mongodb,, -mongodb.usage.update.countps,gauge,,commit,second,Number of updates per second,0,mongodb,, -mongodb.usage.update.time,gauge,,microsecond,,Total time spent performing updates in microseconds,-1,mongodb,, -mongodb.usage.writelock.count,gauge,,lock,,Number of write locks since server start (deprecated),0,mongodb,, -mongodb.usage.writelock.countps,gauge,,lock,second,Number of write locks per second,0,mongodb,, -mongodb.usage.writelock.time,gauge,,microsecond,,Total time spent performing write locks in microseconds,-1,mongodb,, -mongodb.wiredtiger.cache.bytes_currently_in_cache,gauge,,byte,,Size of the data currently in cache.,0,mongodb,bytes currently in the cache, -mongodb.wiredtiger.cache.failed_eviction_of_pages_exceeding_the_in_memory_maximumps,gauge,,page,second,"Number of failed eviction of pages that exceeded the in-memory maximum, per second.",-1,mongodb,cache failed eviction of pages exceeding in-memory maximum ps, -mongodb.wiredtiger.cache.in_memory_page_splits,gauge,,split,,In-memory page splits.,0,mongodb,cache in-memory page splits., -mongodb.wiredtiger.cache.maximum_bytes_configured,gauge,,byte,,Maximum cache size.,0,mongodb,cache maximum bytes configured, -mongodb.wiredtiger.cache.maximum_page_size_at_eviction,gauge,,byte,,Maximum page size at eviction.,0,mongodb,cache maximum page size at eviction, -mongodb.wiredtiger.cache.modified_pages_evicted,gauge,,page,,"Number of pages, that have been modified, evicted from the cache.",-1,mongodb,cache modified pages evicted, -mongodb.wiredtiger.cache.pages_currently_held_in_cache,gauge,,page,,Number of pages currently held in the cache.,0,mongodb,pages currently held in cache, -mongodb.wiredtiger.cache.pages_evicted_by_application_threadsps,gauge,,page,second,Number of page evicted by application threads per second.,-1,mongodb,pages evicted by application threads ps, -mongodb.wiredtiger.cache.pages_evicted_exceeding_the_in_memory_maximumps,gauge,,page,second,"Number of pages evicted because they exceeded the cache in-memory maximum, per second.",-1,mongodb,pages evicted exceeding in-memory maximum ps, -mongodb.wiredtiger.cache.pages_read_into_cache,gauge,,page,,Number of pages read into the cache.,-1,mongodb,pages read cache, -mongodb.wiredtiger.cache.pages_written_from_cache,gauge,,page,,Number of pages writtent from the cache,-1,mongodb,pages written cache, -mongodb.wiredtiger.cache.tracked_dirty_bytes_in_cache,gauge,,byte,,Size of the dirty data in the cache.,0,mongodb,tracked dirty bytes in cache, -mongodb.wiredtiger.cache.unmodified_pages_evicted,gauge,,page,,"Number of pages, that were not modified, evicted from the cache.",0,mongodb,cache unmodified pages evicted, -mongodb.wiredtiger.concurrenttransactions.read.available,gauge,,ticket,,Number of available read tickets (concurrent transactions) remaining.,1,mongodb,concurrent transactions read available, -mongodb.wiredtiger.concurrenttransactions.read.out,gauge,,ticket,,Number of read tickets (concurrent transactions) in use.,0,mongodb,concurrent transactions read out, -mongodb.wiredtiger.concurrenttransactions.read.totaltickets,gauge,,ticket,,Total number of read tickets (concurrent transactions) available.,0,mongodb,concurrent transactions read total tickets, -mongodb.wiredtiger.concurrenttransactions.write.available,gauge,,ticket,,Number of available write tickets (concurrent transactions) remaining.,1,mongodb,concurrent transactions write available, -mongodb.wiredtiger.concurrenttransactions.write.out,gauge,,ticket,,Number of write tickets (concurrent transactions) in use.,0,mongodb,concurrent transactions write out, -mongodb.wiredtiger.concurrenttransactions.write.totaltickets,gauge,,ticket,,Total number of write tickets (concurrent transactions) available.,0,mongodb,concurrent transactions write total tickets, +metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags +mongodb.asserts.msgps,gauge,,assertion,second,Number of message assertions raised per second.,0,mongodb,asserts msg ps,, +mongodb.asserts.regularps,gauge,,assertion,second,Number of regular assertions raised per second.,0,mongodb,asserts regular ps,, +mongodb.asserts.rolloversps,gauge,,assertion,second,Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions.,0,mongodb,asserts rollovers ps,, +mongodb.asserts.userps,gauge,,assertion,second,Number of user assertions raised per second.,0,mongodb,asserts user ps,, +mongodb.asserts.warningps,gauge,,assertion,second,Number of warnings raised per second.,0,mongodb,asserts warning ps,, +mongodb.backgroundflushing.average_ms,gauge,,millisecond,,Average time for each flush to disk.,-1,mongodb,background flushing average ms,, +mongodb.backgroundflushing.flushesps,gauge,,flush,second,Number of times the database has flushed all writes to disk.,0,mongodb,background flushing flushes ps,, +mongodb.backgroundflushing.last_ms,gauge,,millisecond,,Amount of time that the last flush operation took to complete.,-1,mongodb,background flushing last ms,, +mongodb.backgroundflushing.total_ms,gauge,,millisecond,,Total number of time that the `mongod` processes have spent writing (i.e. flushing) data to disk.,0,mongodb,background flushing total ms,, +mongodb.chunks.jumbo,gauge,,,,Total number of 'jumbo' chunks in the mongo cluster.,0,mongodb,,, +mongodb.chunks.total,gauge,,,,Total number of chunks in the mongo cluster.,0,mongodb,,, +mongodb.collection.avgobjsize,gauge,,byte,,The size of the average object in the collection in bytes.,0,mongodb,average object size in bytes,, +mongodb.collection.capped,gauge,,record,,Whether or not the collection is capped.,0,mongodb,collection cap,, +mongodb.collection.collectionscans.nontailable,gauge,,scan,,Number of times the collection was scanned without tailable cursor.,0,mongodb,collection scans non tailable,, +mongodb.collection.collectionscans.total,gauge,,scan,,Total number of times the collection was scanned.,0,mongodb,collection scans total,, +mongodb.collection.commands.latency,gauge,,microsecond,,Total latency for commands on the collection.,0,mongodb,command latency,, +mongodb.collection.commands.opsps,gauge,,operation,second,Number of command operations per second on the collection.,0,mongodb,command operations per second,, +mongodb.collection.count,gauge,,item,,Total number of objects in the collection.,0,mongodb,number of objects in the collection,, +mongodb.collection.indexes.accesses.ops,gauge,,event,,Number of time the index was used.,0,mongodb,index usage,, +mongodb.collection.indexsizes,gauge,,byte,,Size of index in bytes.,0,mongodb,index size,, +mongodb.collection.max,gauge,,document,,Maximum number of documents in a capped collection.,0,mongodb,max documents in capped collection,, +mongodb.collection.maxsize,gauge,,byte,,Maximum size of a capped collection in bytes.,0,mongodb,max size of capped collection,, +mongodb.collection.nindexes,gauge,,index,,Total number of indices on the collection.,0,mongodb,number of indices on collection,, +mongodb.collection.reads.latency,gauge,,microsecond,,Total latency for read operations on the collection.,0,mongodb,read latency,, +mongodb.collection.reads.opsps,gauge,,operation,second,Number of read operations per second on the collection.,0,mongodb,read operations per second,, +mongodb.collection.size,gauge,,byte,,The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection.,0,mongodb,size of the the collection in bytes,, +mongodb.collection.storagesize,gauge,,byte,,Total storage space allocated to this collection for document storage.,0,mongodb,storage space of collection,, +mongodb.collection.totalindexsize,gauge,,byte,,Total size of all indexes created on this collection.,0,mongodb,total index size,, +mongodb.collection.transactions.latency,gauge,,microsecond,,Total latency for transactions on the collection.,0,mongodb,transaction latency,, +mongodb.collection.transactions.opsps,gauge,,operation,second,Number of transaction operations per second on the collection.,0,mongodb,transaction operations per second,, +mongodb.collection.writes.latency,gauge,,microsecond,,Total latency for write operations on the collection.,0,mongodb,write latency,, +mongodb.collection.writes.opsps,gauge,,operation,second,Number of write operations per second on the collection.,0,mongodb,write operations per second,, +mongodb.connection_pool.numascopedconnections,gauge,,connection,,Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster or replica set.,0,mongodb,,, +mongodb.connection_pool.numclientconnections,gauge,,connection,,Reports the number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster or replica set.,0,mongodb,,, +mongodb.connection_pool.totalavailable,gauge,,connection,,Reports the total number of available outgoing connections from the current mongos instance to other members of the sharded cluster or replica set.,0,mongodb,,, +mongodb.connection_pool.totalcreatedps,gauge,,connection,second,Reports the total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster or replica set.,0,mongodb,,, +mongodb.connection_pool.totalinuse,gauge,,connection,,Reports the total number of outgoing connections from the current mongod/mongos instance to other members of the sharded cluster or replica set that are currently in use.,0,mongodb,,, +mongodb.connection_pool.totalrefreshing,gauge,,connection,,Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster or replica set that are currently being refreshed.,0,mongodb,,, +mongodb.connections.available,gauge,,connection,,Number of unused available incoming connections the database can provide.,0,mongodb,connections available,, +mongodb.connections.current,gauge,,connection,,Number of connections to the database server from clients.,0,mongodb,connections current,, +mongodb.connections.totalcreated,gauge,,connection,,Total number of connections created.,0,mongodb,connections created,, +mongodb.cursors.timedout,gauge,,cursor,,Total number of cursors that have timed out since the server process started.,0,mongodb,cursors timed out,, +mongodb.cursors.totalopen,gauge,,cursor,,Number of cursors that MongoDB is maintaining for clients,0,mongodb,cursors open,, +mongodb.dbs,gauge,,item,,Total number of existing databases,0,mongodb,databases,, +mongodb.dur.commits,gauge,,transaction,,Number of transactions written to the journal during the last journal group commit interval.,0,mongodb,dur commits,, +mongodb.dur.commitsinwritelock,gauge,,commit,,Count of the commits that occurred while a write lock was held.,0,mongodb,dur commits in write lock,, +mongodb.dur.compression,gauge,,fraction,,Compression ratio of the data written to the journal.,1,mongodb,dur compression,, +mongodb.dur.earlycommits,gauge,,commit,,Number of times MongoDB requested a commit before the scheduled journal group commit interval. ,0,mongodb,dur early commits,, +mongodb.dur.journaledmb,gauge,,mebibyte,,Amount of data written to journal during the last journal group commit interval.,0,mongodb,dur journaled mb,, +mongodb.dur.timems.commits,gauge,,millisecond,,Amount of time spent for commits.,-1,mongodb,dur time ms commits,, +mongodb.dur.timems.commitsinwritelock,gauge,,millisecond,,Amount of time spent for commits that occurred while a write lock was held.,-1,mongodb,dur time ms commits in write lock,, +mongodb.dur.timems.dt,gauge,,millisecond,,Amount of time over which MongoDB collected the `dur.timeMS` data.,-1,mongodb,dur time ms dt,, +mongodb.dur.timems.preplogbuffer,gauge,,millisecond,,Amount of time spent preparing to write to the journal. ,-1,mongodb,dur time ms prep log buffer,, +mongodb.dur.timems.remapprivateview,gauge,,millisecond,,Amount of time spent remapping copy-on-write memory mapped views.,-1,mongodb,dur time ms remap private view,, +mongodb.dur.timems.writetodatafiles,gauge,,millisecond,,Amount of time spent writing to data files after journaling.,-1,mongodb,dur time ms write to data files,, +mongodb.dur.timems.writetojournal,gauge,,millisecond,,Amount of time spent writing to the journal,-1,mongodb,dur time ms write to journal,, +mongodb.dur.writetodatafilesmb,gauge,,mebibyte,,Amount of data written from journal to the data files during the last journal group commit interval.,-1,mongodb,dur write to data files mb,, +mongodb.extra_info.heap_usage_bytesps,gauge,,byte,second,The total size in bytes of heap space used by the database process. Available on Unix/Linux systems only.,0,mongodb,heap usage bytesps,, +mongodb.extra_info.page_faultsps,gauge,,fault,second,Number of page faults per second that require disk operations.,0,mongodb,pagefaults ps,, +mongodb.fsynclocked,gauge,,,,Metric representing the fsynclock state of a database. 1 if it's locked and 0 if it's not.,0,mongodb,fsynclocked,, +mongodb.globallock.activeclients.readers,gauge,,connection,,Count of the active client connections performing read operations.,0,mongodb,active clients readers,, +mongodb.globallock.activeclients.total,gauge,,connection,,Total number of active client connections to the database.,0,mongodb,active clients total,, +mongodb.globallock.activeclients.writers,gauge,,connection,,Count of active client connections performing write operations.,0,mongodb,active clients writers,, +mongodb.globallock.currentqueue.readers,gauge,,operation,,Number of operations that are currently queued and waiting for the read lock.,0,mongodb,global lock current queue readers,, +mongodb.globallock.currentqueue.total,gauge,,operation,,Total number of operations queued waiting for the lock.,0,mongodb,global lock current queue total,, +mongodb.globallock.currentqueue.writers,gauge,,operation,,Number of operations that are currently queued and waiting for the write lock.,0,mongodb,global lock current queue writers,, +mongodb.globallock.locktime,gauge,,millisecond,,Time since the database last started that the globalLock has been held.,0,mongodb,global lock lock time,, +mongodb.globallock.ratio,gauge,,fraction,,Ratio of the time that the globalLock has been held to the total time since it was created.,-1,mongodb,globallock ratio,, +mongodb.globallock.totaltime,gauge,,microsecond,,Time since the database last started and created the global lock.,0,mongodb,global lock total time,, +mongodb.indexcounters.accessesps,gauge,,event,second,Number of times that operations have accessed indexes per second.,0,mongodb,index counters accesses ps,, +mongodb.indexcounters.hitsps,gauge,,hit,second,Number of times per second that an index has been accessed and mongod is able to return the index from memory.,0,mongodb,indexcounters hits ps,, +mongodb.indexcounters.missesps,gauge,,miss,second,Number of times per second that an operation attempted to access an index that was not in memory.,0,mongodb,indexcounters misses ps,, +mongodb.indexcounters.missratio,gauge,,fraction,,Ratio of index hits to misses.,0,mongodb,indexcounters miss ratio,, +mongodb.indexcounters.resetsps,gauge,,event,second,Number of times per second the index counters have been reset.,0,mongodb,indexcounters resets ps,, +mongodb.locks.collection.acquirecount.exclusiveps,gauge,,lock,second,Number of times the collection lock type was acquired in the Exclusive (X) mode.,0,mongodb,locks collection acquire count exclusive,, +mongodb.locks.collection.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the collection lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks collection acquire count intent_exclusive,, +mongodb.locks.collection.acquirecount.intent_sharedps,gauge,,lock,second,Number of times the collection lock type was acquired in the Intent Shared (IS) mode.,0,mongodb,locks collection acquire count intent_shared,, +mongodb.locks.collection.acquirecount.sharedps,gauge,,lock,second,Number of times the collection lock type was acquired in the Shared (S) mode.,0,mongodb,locks collection acquire count shared,, +mongodb.locks.collection.acquirewaitcount.exclusiveps,gauge,,wait,second,Number of times the collection lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks collection wait count exclusive,, +mongodb.locks.collection.acquirewaitcount.sharedps,gauge,,wait,second,Number of times the collection lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks collection wait count shared,, +mongodb.locks.collection.timeacquiringmicros.exclusiveps,gauge,,fraction,,Wait time for the collection lock type acquisitions in the Exclusive (X) mode.,-1,mongodb,locks collection wait time exclusive,, +mongodb.locks.collection.timeacquiringmicros.sharedps,gauge,,fraction,,Wait time for the collection lock type acquisitions in the Shared (S) mode.,-1,mongodb,locks collection wait time shared,, +mongodb.locks.database.acquirecount.exclusiveps,gauge,,lock,second,Number of times the database lock type was acquired in the Exclusive (X) mode.,0,mongodb,locks database acquire count exclusive,, +mongodb.locks.database.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the database lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks database acquire count intent_exclusive,, +mongodb.locks.database.acquirecount.intent_sharedps,gauge,,lock,second,Number of times the database lock type was acquired in the Intent Shared (IS) mode.,0,mongodb,locks database acquire count intent_shared,, +mongodb.locks.database.acquirecount.sharedps,gauge,,lock,second,Number of times the database lock type was acquired in the Shared (S) mode.,0,mongodb,locks database acquire count shared,, +mongodb.locks.database.acquirewaitcount.exclusiveps,gauge,,wait,second,Number of times the database lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks database wait count exclusive,, +mongodb.locks.database.acquirewaitcount.intent_exclusiveps,gauge,,wait,second,Number of times the database lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks database wait count intent_exclusive,, +mongodb.locks.database.acquirewaitcount.intent_sharedps,gauge,,wait,second,Number of times the database lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks database wait count intent_shared,, +mongodb.locks.database.acquirewaitcount.sharedps,gauge,,wait,second,Number of times the database lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks database wait count shared,, +mongodb.locks.database.timeacquiringmicros.exclusiveps,gauge,,fraction,,Wait time for the database lock type acquisitions in the Exclusive (X) mode.,-1,mongodb,locks database wait time exclusive,, +mongodb.locks.database.timeacquiringmicros.intent_exclusiveps,gauge,,fraction,,Wait time for the database lock type acquisitions in the Intent Exclusive (IX) mode.,-1,mongodb,locks database wait time intent_exclusive,, +mongodb.locks.database.timeacquiringmicros.intent_sharedps,gauge,,fraction,,Wait time for the database lock type acquisitions in the Intent Shared (IS) mode.,-1,mongodb,locks database wait time intent_shared,, +mongodb.locks.database.timeacquiringmicros.sharedps,gauge,,fraction,,Wait time for the database lock type acquisitions in the Shared (S) mode.,-1,mongodb,locks database wait time shared,, +mongodb.locks.global.acquirecount.exclusiveps,gauge,,lock,second,Number of times the global lock type was acquired in the Exclusive (X) mode.,0,mongodb,locks global acquire count exclusive,, +mongodb.locks.global.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the global lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks global acquire count intent_exclusive,, +mongodb.locks.global.acquirecount.intent_sharedps,gauge,,lock,second,Number of times the global lock type was acquired in the Intent Shared (IS) mode.,0,mongodb,locks global acquire count intent_shared,, +mongodb.locks.global.acquirecount.sharedps,gauge,,lock,second,Number of times the global lock type was acquired in the Shared (S) mode.,0,mongodb,locks global acquire count shared,, +mongodb.locks.global.acquirewaitcount.exclusiveps,gauge,,wait,second,Number of times the global lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks global wait count exclusive,, +mongodb.locks.global.acquirewaitcount.intent_exclusiveps,gauge,,wait,second,Number of times the global lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks global wait count intent_exclusive,, +mongodb.locks.global.acquirewaitcount.intent_sharedps,gauge,,wait,second,Number of times the global lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks global wait count intent_shared,, +mongodb.locks.global.acquirewaitcount.sharedps,gauge,,wait,second,Number of times the global lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks global wait count shared,, +mongodb.locks.global.timeacquiringmicros.exclusiveps,gauge,,fraction,,Wait time for the global lock type acquisitions in the Exclusive (X) mode.,-1,mongodb,locks global wait time exclusive,, +mongodb.locks.global.timeacquiringmicros.intent_exclusiveps,gauge,,fraction,,Wait time for the global lock type acquisitions in the Intent Exclusive (IX) mode.,-1,mongodb,locks global wait time intent_exclusive,, +mongodb.locks.global.timeacquiringmicros.intent_sharedps,gauge,,fraction,,Wait time for the global lock type acquisitions in the Intent Shared (IS) mode.,-1,mongodb,locks global wait time intent_shared,, +mongodb.locks.global.timeacquiringmicros.sharedps,gauge,,fraction,,Wait time for the global lock type acquisitions in the Shared (S) mode.,-1,mongodb,locks global wait time shared,, +mongodb.locks.metadata.acquirecount.exclusiveps,gauge,,lock,second,Number of times the metadata lock type was acquired in the Exclusive (X) mode.,0,mongodb,locks metadata acquire count exclusive,, +mongodb.locks.metadata.acquirecount.sharedps,gauge,,lock,second,Number of times the metadata lock type was acquired in the Shared (S) mode.,0,mongodb,locks metadata acquire count shared,, +mongodb.locks.mmapv1journal.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the MMAPv1 storage engine lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks mmapv1journal acquire count intent_exclusive,, +mongodb.locks.mmapv1journal.acquirecount.intent_sharedps,gauge,,lock,second,Number of times the MMAPv1 storage engine lock type was acquired in the Intent Shared (IS) mode.,0,mongodb,locks mmapv1journal acquire count intent_shared,, +mongodb.locks.mmapv1journal.acquirewaitcount.intent_exclusiveps,gauge,,wait,second,Number of times the MMAPv1 storage engine lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks mmapv1journal wait count intent_exclusive,, +mongodb.locks.mmapv1journal.acquirewaitcount.intent_sharedps,gauge,,wait,second,Number of times the MMAPv1 storage engine lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks mmapv1journal wait count intent_shared,, +mongodb.locks.mmapv1journal.timeacquiringmicros.intent_exclusiveps,gauge,,fraction,,Wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Exclusive (IX) mode.,-1,mongodb,locks mmapv1journal wait time intent_exclusive,, +mongodb.locks.mmapv1journal.timeacquiringmicros.intent_sharedps,gauge,,fraction,,Wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Shared (IS) mode.,-1,mongodb,locks mmapv1journal wait time intent_shared,, +mongodb.locks.oplog.acquirecount.intent_exclusiveps,gauge,,lock,second,Number of times the oplog lock type was acquired in the Intent Exclusive (IX) mode.,0,mongodb,locks oplog acquire count intent_exclusive,, +mongodb.locks.oplog.acquirecount.sharedps,gauge,,lock,second,Number of times the oplog lock type was acquired in the Shared (S) mode.,0,mongodb,locks oplog acquire count shared,, +mongodb.locks.oplog.acquirewaitcount.intent_exclusiveps,gauge,,wait,second,Number of times the oplog lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks oplog wait count intent_exclusive,, +mongodb.locks.oplog.acquirewaitcount.sharedps,gauge,,wait,second,Number of times the oplog lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.,-1,mongodb,locks oplog wait count shared,, +mongodb.locks.oplog.timeacquiringmicros.intent_exclusiveps,gauge,,fraction,,Wait time for the oplog lock type acquisitions in the Intent Exclusive (IX) mode.,-1,mongodb,locks oplog wait time intent_exclusive,, +mongodb.locks.oplog.timeacquiringmicros.sharedps,gauge,,fraction,,Wait time for the oplog lock type acquisitions in the Shared (S) mode.,-1,mongodb,locks oplog wait time shared,, +mongodb.mem.bits,gauge,,mebibyte,,Size of the in-memory storage engine.,0,mongodb,mem bits,, +mongodb.mem.mapped,gauge,,mebibyte,,Amount of mapped memory by the database.,0,mongodb,mem mapped,, +mongodb.mem.mappedwithjournal,gauge,,mebibyte,,"The amount of mapped memory, including the memory used for journaling.",0,mongodb,memory mapped with journal,, +mongodb.mem.resident,gauge,,mebibyte,,Amount of memory currently used by the database process.,0,mongodb,mem resident,, +mongodb.mem.virtual,gauge,,mebibyte,,Amount of virtual memory used by the mongod process.,0,mongodb,mem virtual,, +mongodb.metrics.commands.count.failedps,gauge,,command,second,Number of times count failed,-1,mongodb,cmd count failed,, +mongodb.metrics.commands.count.total,gauge,,command,,Number of times count executed,0,mongodb,cmd count executed,, +mongodb.metrics.commands.createindexes.failedps,gauge,,command,second,Number of times createIndexes failed,-1,mongodb,cmd createIndexes failed,, +mongodb.metrics.commands.createindexes.total,gauge,,command,,Number of times createIndexes executed,0,mongodb,cmd createIndexes executed,, +mongodb.metrics.commands.delete.failedps,gauge,,command,second,Number of times delete failed,-1,mongodb,cmd delete failed,, +mongodb.metrics.commands.delete.total,gauge,,command,,Number of times delete executed,0,mongodb,cmd delete executed,, +mongodb.metrics.commands.eval.failedps,gauge,,command,second,Number of times eval failed,-1,mongodb,cmd eval failed,, +mongodb.metrics.commands.eval.total,gauge,,command,,Number of times eval executed,0,mongodb,cmd eval executed,, +mongodb.metrics.commands.findandmodify.failedps,gauge,,command,second,Number of times findAndModify failed,-1,mongodb,cmd findAndModify failed,, +mongodb.metrics.commands.findandmodify.total,gauge,,command,,Number of times findAndModify executed,0,mongodb,cmd findAndModify executed,, +mongodb.metrics.commands.insert.failedps,gauge,,command,second,Number of times insert failed,-1,mongodb,cmd insert failed,, +mongodb.metrics.commands.insert.total,gauge,,command,,Number of times insert executed,0,mongodb,cmd insert executed,, +mongodb.metrics.commands.update.failedps,gauge,,command,second,Number of times update failed,-1,mongodb,cmd update failed,, +mongodb.metrics.commands.update.total,gauge,,command,,Number of times update executed,0,mongodb,cmd update executed,, +mongodb.metrics.cursor.open.notimeout,gauge,,cursor,,Number of open cursors with the option `DBQuery.Option.noTimeout` set to prevent timeout after a period of inactivity.,-1,mongodb,cursors open no timeout,, +mongodb.metrics.cursor.open.pinned,gauge,,cursor,,Number of pinned open cursors.,0,mongodb,cursors open pinned,, +mongodb.metrics.cursor.open.total,gauge,,cursor,,Number of cursors that MongoDB is maintaining for clients.,-1,mongodb,open cursors,, +mongodb.metrics.cursor.timedoutps,gauge,,cursor,second,"Number of cursors that time out, per second.",-1,mongodb,timed out cursors per s,, +mongodb.metrics.document.deletedps,gauge,,document,second,Number of documents deleted per second.,0,mongodb,document deleted ps,, +mongodb.metrics.document.insertedps,gauge,,document,second,Number of documents inserted per second.,0,mongodb,document inserted ps,, +mongodb.metrics.document.returnedps,gauge,,document,second,Number of documents returned by queries per second.,0,mongodb,document returned ps,, +mongodb.metrics.document.updatedps,gauge,,document,second,Number of documents updated per second.,0,mongodb,document updated ps,, +mongodb.metrics.getlasterror.wtime.numps,gauge,,operation,second,Number of getLastError operations per second with a specified write concern (i.e. w) that wait for one or more members of a replica set to acknowledge the write operation.,0,mongodb,getlasterror wtime numps,, +mongodb.metrics.getlasterror.wtime.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) that the mongod has spent performing getLastError operations with write concern (i.e. w) that wait for one or more members of a replica set to acknowledge the write operation.,0,mongodb,getlasterror wtime totalmillis ps,, +mongodb.metrics.getlasterror.wtimeoutsps,gauge,,event,second,Number of times per second that write concern operations have timed out as a result of the wtimeout threshold to getLastError,0,mongodb,getlasterror wtimeouts ps,, +mongodb.metrics.operation.fastmodps,gauge,,operation,second,Number of update operations per second that neither cause documents to grow nor require updates to the index.,0,mongodb,operation fastmod ps,, +mongodb.metrics.operation.idhackps,gauge,,query,second,Number of queries per second that contain the _id field.,0,mongodb,operation idhack ps,, +mongodb.metrics.operation.scanandorderps,gauge,,query,second,Number of queries per second that return sorted numbers that cannot perform the sort operation using an index.,0,mongodb,operation scanandorder ps,, +mongodb.metrics.operation.writeconflictsps,gauge,,event,second,Number of times per second that write concern operations has encounter a conflict.,0,mongodb,write conflict,, +mongodb.metrics.queryexecutor.scannedobjectsps,gauge,,operation,second,Number of documents scanned per second during queries and query-plan evaluation.,0,mongodb,queryexecutor scanned object ps,, +mongodb.metrics.queryexecutor.scannedps,gauge,,operation,second,Number of index items scanned per second during queries and query-plan evaluation.,0,mongodb,queryexecutor scanned ps,, +mongodb.metrics.record.movesps,gauge,,operation,second,Number of times per second documents move within the on-disk representation of the MongoDB data set.,0,mongodb,record moves ps,, +mongodb.metrics.repl.apply.batches.numps,gauge,,operation,second,Number of batches applied across all databases per second.,0,mongodb,repl apply batches num ps,, +mongodb.metrics.repl.apply.batches.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) the mongod has spent applying operations from the oplog.,0,mongodb,repl apply batches totalmillis ps,, +mongodb.metrics.repl.apply.opsps,gauge,,operation,second,Number of oplog operations applied per second.,0,mongodb,repl apply ops ps,, +mongodb.metrics.repl.buffer.count,gauge,,operation,,Number of operations in the oplog buffer.,0,mongodb,repl buffer count,, +mongodb.metrics.repl.buffer.maxsizebytes,gauge,,byte,,Maximum size of the buffer.,0,mongodb,repl buffer maxsize bytes,, +mongodb.metrics.repl.buffer.sizebytes,gauge,,byte,,Current size of the contents of the oplog buffer.,0,mongodb,repl buffer size bytes,, +mongodb.metrics.repl.network.bytesps,gauge,,byte,second,Amount of data read from the replication sync source per second.,0,mongodb,repl network bytes ps,, +mongodb.metrics.repl.network.getmores.numps,gauge,,operation,second,Number of getmore operations per second.,0,mongodb,repl network getmores num ps,, +mongodb.metrics.repl.network.getmores.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) required to collect data from getmore operations.,0,mongodb,repl network getmores totalmillis ps,, +mongodb.metrics.repl.network.opsps,gauge,,operation,second,Number of operations read from the replication source per second.,0,mongodb,repl network ops ps,, +mongodb.metrics.repl.network.readerscreatedps,gauge,,process,second,Number of oplog query processes created per second.,0,mongodb,repl network readerscreated ps,, +mongodb.metrics.repl.preload.docs.numps,gauge,,document,second,Number of documents loaded per second during the pre-fetch stage of replication.,0,mongodb,repl docs nums,, +mongodb.metrics.repl.preload.docs.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication.,0,mongodb,repl docs nums,, +mongodb.metrics.repl.preload.indexes.numps,gauge,,document,second,Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication.,0,mongodb,repl docs nums,, +mongodb.metrics.repl.preload.indexes.totalmillisps,gauge,,fraction,,Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication.,0,mongodb,repl docs nums,, +mongodb.metrics.ttl.deleteddocumentsps,gauge,,document,second,Number of documents deleted from collections with a ttl index per second.,0,mongodb,ttl deleted docs ps,, +mongodb.metrics.ttl.passesps,gauge,,operation,second,Number of times per second the background process removes documents from collections with a ttl index.,0,mongodb,ttl passes ps,, +mongodb.network.bytesinps,gauge,,byte,second,The number of bytes that reflects the amount of network traffic received by this database.,0,mongodb,bytes inps,, +mongodb.network.bytesoutps,gauge,,byte,second,The number of bytes that reflects the amount of network traffic sent from this database.,0,mongodb,bytes outps,, +mongodb.network.numrequestsps,gauge,,request,second,Number of distinct requests that the server has received.,0,mongodb,num requests ps,, +mongodb.opcounters.commandps,gauge,,command,second,Total number of commands per second issued to the database.,0,mongodb,opcounters command ps,, +mongodb.opcounters.deleteps,gauge,,operation,second,Number of delete operations per second.,0,mongodb,opcounters delete ps,, +mongodb.opcounters.getmoreps,gauge,,operation,second,Number of getmore operations per second.,0,mongodb,opcounters getmore ps,, +mongodb.opcounters.insertps,gauge,,operation,second,Number of insert operations per second.,0,mongodb,opcounters insert ps,, +mongodb.opcounters.queryps,gauge,,query,second,Total number of queries per second.,0,mongodb,opcounters query ps,, +mongodb.opcounters.updateps,gauge,,operation,second,Number of update operations per second.,0,mongodb,opcounters update ps,, +mongodb.opcountersrepl.commandps,gauge,,command,second,Total number of replicated commands issued to the database per second.,0,mongodb,opcountersrepl command ps,, +mongodb.opcountersrepl.deleteps,gauge,,operation,second,Number of replicated delete operations per second.,0,mongodb,opcountersrepl delete ps,, +mongodb.opcountersrepl.getmoreps,gauge,,operation,second,Number of replicated getmore operations per second.,0,mongodb,opcountersrepl getmore ps,, +mongodb.opcountersrepl.insertps,gauge,,operation,second,Number of replicated insert operations per second.,0,mongodb,opcountersrepl insert ps,, +mongodb.opcountersrepl.queryps,gauge,,query,second,Total number of replicated queries per second.,0,mongodb,opcountersrepl query ps,, +mongodb.opcountersrepl.updateps,gauge,,operation,second,Number of replicated update operations per second.,0,mongodb,opcountersrepl update ps,, +mongodb.oplatencies.commands.latency,gauge,,microsecond,,Total combined latency for database commands.,0,mongodb,oplatencies commands,, +mongodb.oplatencies.commands.latencyps,gauge,,command,second,Total latency statistics for database commands per second (deprecated).,0,mongodb,oplatencies commands ps,, +mongodb.oplatencies.reads.latency,gauge,,microsecond,,Total combined latency for read requests.,0,mongodb,oplatencies reads,, +mongodb.oplatencies.reads.latencyps,gauge,,operation,second,Total latency statistics for read requests per second (deprecated).,0,mongodb,oplatencies reads ps,, +mongodb.oplatencies.writes.latency,gauge,,microsecond,,Total combined latency for write requests.,0,mongodb,oplatencies writes,, +mongodb.oplatencies.writes.latencyps,gauge,,operation,second,Total latency statistics for write operations per second (deprecated).,0,mongodb,oplatencies writes ps,, +mongodb.oplog.logsizemb,gauge,,mebibyte,,Total size of the oplog.,0,mongodb,oplog log size mb,, +mongodb.oplog.timediff,gauge,,second,,Oplog window: difference between the first and last operation in the oplog.,1,mongodb,oplog timediff,, +mongodb.oplog.usedsizemb,gauge,,mebibyte,,Total amount of space used by the oplog.,0,mongodb,oplog used size mb,, +mongodb.replset.health,gauge,,,,Member health value of the replica set: conveys if the member is up (i.e. 1) or down (i.e. 0).,1,mongodb,replset health,, +mongodb.replset.optime_lag,gauge,,second,,Delay between a write operation on the primary and its copy to a secondary. Computed only on primary and tagged by 'member'.,-1,mongodb,replication lag,, +mongodb.replset.replicationlag,gauge,,second,,"Delay between a write operation on the primary and its copy to a secondary. Computed on each node and tagged by 'host', but may not be representative of cluster health. Negative values do not indicate that the secondary is ahead of the primary. To use a more up-to-date metric, use mongodb.replset.optime_lag instead.",-1,mongodb,replication lag,, +mongodb.replset.state,gauge,,,,State of a replica that reflects its disposition within the set.,0,mongodb,replset state,, +mongodb.replset.votefraction,gauge,,fraction,,Fraction of votes a server will cast in a replica set election.,0,mongodb,votes fraction,, +mongodb.replset.votes,gauge,,item,,The number of votes a server will cast in a replica set election.,0,mongodb,replset votes,, +mongodb.sessions.count,gauge,,session,,Number of active sessions for all users.,0,mongodb,,, +mongodb.stats.avgobjsize,gauge,,byte,,The average size of each document in bytes.,0,mongodb,stats avgobjsize,, +mongodb.stats.collections,gauge,,,,Contains a count of the number of collections in that database.,0,mongodb,stats collections,, +mongodb.stats.datasize,gauge,,byte,,Total size of the data held in this database including the padding factor.,0,mongodb,stats datasize,, +mongodb.stats.filesize,gauge,,byte,,Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine).,0,mongodb,stats filesize,, +mongodb.stats.indexes,gauge,,index,,Total number of indexes across all collections in the database.,0,mongodb,stats indexes,, +mongodb.stats.indexsize,gauge,,byte,,Total size of all indexes created on this database.,0,mongodb,stats indexsize,, +mongodb.stats.numextents,gauge,,,,Contains a count of the number of extents in the database across all collections.,0,mongodb,stats numextents,, +mongodb.stats.objects,gauge,,object,,Number of objects (documents) in the database across all collections.,0,mongodb,stats objects,, +mongodb.stats.storagesize,gauge,,byte,,Total amount of space allocated to collections in this database for document storage.,0,mongodb,stats storagesize,, +mongodb.tcmalloc.generic.current_allocated_bytes,gauge,,byte,,Number of bytes used by the application.,0,mongodb,,, +mongodb.tcmalloc.generic.heap_size,gauge,,byte,,Bytes of system memory reserved by TCMalloc.,0,mongodb,,, +mongodb.tcmalloc.tcmalloc.aggressive_memory_decommit,gauge,,,,Status of aggressive memory decommit mode.,0,mongodb,,, +mongodb.tcmalloc.tcmalloc.central_cache_free_bytes,gauge,,byte,,Number of free bytes in the central cache.,0,mongodb,,, +mongodb.tcmalloc.tcmalloc.current_total_thread_cache_bytes,gauge,,byte,,Number of bytes used across all thread caches.,0,mongodb,,, +mongodb.tcmalloc.tcmalloc.max_total_thread_cache_bytes,gauge,,byte,,Upper limit on total number of bytes stored across all per-thread caches.,0,mongodb,,, +mongodb.tcmalloc.tcmalloc.pageheap_free_bytes,gauge,,byte,,Number of bytes in free mapped pages in page heap.,0,mongodb,,, +mongodb.tcmalloc.tcmalloc.pageheap_unmapped_bytes,gauge,,byte,,Number of bytes in free unmapped pages in page heap.,0,mongodb,,, +mongodb.tcmalloc.tcmalloc.spinlock_total_delay_ns,gauge,,nanosecond,,Spinlock delay time.,-1,mongodb,,, +mongodb.tcmalloc.tcmalloc.thread_cache_free_bytes,gauge,,byte,,Number of free bytes in thread caches.,0,mongodb,,, +mongodb.tcmalloc.tcmalloc.transfer_cache_free_bytes,gauge,,byte,,Number of free bytes that are waiting to be transferred between the central cache and a thread cache.,0,mongodb,,, +mongodb.uptime,gauge,,second,,Number of seconds that the mongos or mongod process has been active.,0,mongodb,uptime,, +mongodb.usage.commands.count,gauge,,command,,Number of commands since server start (deprecated),0,mongodb,,, +mongodb.usage.commands.countps,gauge,,command,second,Number of commands per second,0,mongodb,,, +mongodb.usage.commands.time,gauge,,microsecond,,Total time spent performing commands in microseconds,-1,mongodb,,, +mongodb.usage.getmore.count,gauge,,fetch,,Number of getmore since server start (deprecated),0,mongodb,,, +mongodb.usage.getmore.countps,gauge,,fetch,second,Number of getmore per second,0,mongodb,,, +mongodb.usage.getmore.time,gauge,,microsecond,,Total time spent performing getmore in microseconds,-1,mongodb,,, +mongodb.usage.insert.count,gauge,,commit,,Number of inserts since server start (deprecated),0,mongodb,,, +mongodb.usage.insert.countps,gauge,,commit,second,Number of inserts per second,0,mongodb,,, +mongodb.usage.insert.time,gauge,,microsecond,,Total time spent performing inserts in microseconds,-1,mongodb,,, +mongodb.usage.queries.count,gauge,,query,,Number of queries since server start (deprecated),0,mongodb,,, +mongodb.usage.queries.countps,gauge,,query,second,Number of queries per second,0,mongodb,,, +mongodb.usage.queries.time,gauge,,microsecond,,Total time spent performing queries in microseconds,-1,mongodb,,, +mongodb.usage.readlock.count,gauge,,lock,,Number of read locks since server start (deprecated),0,mongodb,,, +mongodb.usage.readlock.countps,gauge,,lock,second,Number of read locks per second,0,mongodb,,, +mongodb.usage.readlock.time,gauge,,microsecond,,Total time spent performing read locks in microseconds,-1,mongodb,,, +mongodb.usage.remove.count,gauge,,commit,,Number of removes since server start (deprecated),0,mongodb,,, +mongodb.usage.remove.countps,gauge,,commit,second,Number of removes per second,0,mongodb,,, +mongodb.usage.remove.time,gauge,,microsecond,,Total time spent performing removes in microseconds,-1,mongodb,,, +mongodb.usage.total.count,gauge,,command,,Number of operations since server start (deprecated),0,mongodb,,, +mongodb.usage.total.countps,gauge,,command,second,Number of operations per second,0,mongodb,,, +mongodb.usage.total.time,gauge,,microsecond,,Total time spent holding locks in microseconds,-1,mongodb,,, +mongodb.usage.update.count,gauge,,commit,,Number of updates since server start (deprecated),0,mongodb,,, +mongodb.usage.update.countps,gauge,,commit,second,Number of updates per second,0,mongodb,,, +mongodb.usage.update.time,gauge,,microsecond,,Total time spent performing updates in microseconds,-1,mongodb,,, +mongodb.usage.writelock.count,gauge,,lock,,Number of write locks since server start (deprecated),0,mongodb,,, +mongodb.usage.writelock.countps,gauge,,lock,second,Number of write locks per second,0,mongodb,,, +mongodb.usage.writelock.time,gauge,,microsecond,,Total time spent performing write locks in microseconds,-1,mongodb,,, +mongodb.wiredtiger.cache.bytes_currently_in_cache,gauge,,byte,,Size of the data currently in cache.,0,mongodb,bytes currently in the cache,, +mongodb.wiredtiger.cache.failed_eviction_of_pages_exceeding_the_in_memory_maximumps,gauge,,page,second,"Number of failed eviction of pages that exceeded the in-memory maximum, per second.",-1,mongodb,cache failed eviction of pages exceeding in-memory maximum ps,, +mongodb.wiredtiger.cache.in_memory_page_splits,gauge,,split,,In-memory page splits.,0,mongodb,cache in-memory page splits.,, +mongodb.wiredtiger.cache.maximum_bytes_configured,gauge,,byte,,Maximum cache size.,0,mongodb,cache maximum bytes configured,, +mongodb.wiredtiger.cache.maximum_page_size_at_eviction,gauge,,byte,,Maximum page size at eviction.,0,mongodb,cache maximum page size at eviction,, +mongodb.wiredtiger.cache.modified_pages_evicted,gauge,,page,,"Number of pages, that have been modified, evicted from the cache.",-1,mongodb,cache modified pages evicted,, +mongodb.wiredtiger.cache.pages_currently_held_in_cache,gauge,,page,,Number of pages currently held in the cache.,0,mongodb,pages currently held in cache,, +mongodb.wiredtiger.cache.pages_evicted_by_application_threadsps,gauge,,page,second,Number of page evicted by application threads per second.,-1,mongodb,pages evicted by application threads ps,, +mongodb.wiredtiger.cache.pages_evicted_exceeding_the_in_memory_maximumps,gauge,,page,second,"Number of pages evicted because they exceeded the cache in-memory maximum, per second.",-1,mongodb,pages evicted exceeding in-memory maximum ps,, +mongodb.wiredtiger.cache.pages_read_into_cache,gauge,,page,,Number of pages read into the cache.,-1,mongodb,pages read cache,, +mongodb.wiredtiger.cache.pages_written_from_cache,gauge,,page,,Number of pages writtent from the cache,-1,mongodb,pages written cache,, +mongodb.wiredtiger.cache.tracked_dirty_bytes_in_cache,gauge,,byte,,Size of the dirty data in the cache.,0,mongodb,tracked dirty bytes in cache,, +mongodb.wiredtiger.cache.unmodified_pages_evicted,gauge,,page,,"Number of pages, that were not modified, evicted from the cache.",0,mongodb,cache unmodified pages evicted,, +mongodb.wiredtiger.concurrenttransactions.read.available,gauge,,ticket,,Number of available read tickets (concurrent transactions) remaining.,1,mongodb,concurrent transactions read available,, +mongodb.wiredtiger.concurrenttransactions.read.out,gauge,,ticket,,Number of read tickets (concurrent transactions) in use.,0,mongodb,concurrent transactions read out,, +mongodb.wiredtiger.concurrenttransactions.read.totaltickets,gauge,,ticket,,Total number of read tickets (concurrent transactions) available.,0,mongodb,concurrent transactions read total tickets,, +mongodb.wiredtiger.concurrenttransactions.write.available,gauge,,ticket,,Number of available write tickets (concurrent transactions) remaining.,1,mongodb,concurrent transactions write available,, +mongodb.wiredtiger.concurrenttransactions.write.out,gauge,,ticket,,Number of write tickets (concurrent transactions) in use.,0,mongodb,concurrent transactions write out,, +mongodb.wiredtiger.concurrenttransactions.write.totaltickets,gauge,,ticket,,Total number of write tickets (concurrent transactions) available.,0,mongodb,concurrent transactions write total tickets,, diff --git a/mongo/tests/fixtures/$collStats-bar b/mongo/tests/fixtures/$collStats-bar new file mode 100644 index 0000000000000..02f9bf715b09f --- /dev/null +++ b/mongo/tests/fixtures/$collStats-bar @@ -0,0 +1,586 @@ +[ + { + "ns": "test.bar", + "host": "7515219d9503:27017", + "localTime": { + "$date": "2024-07-01T20:37:36.819Z" + }, + "latencyStats": { + "reads": { + "latency": 13165, + "ops": 10 + }, + "writes": { + "latency": 8542, + "ops": 1 + }, + "commands": { + "latency": 0, + "ops": 0 + }, + "transactions": { + "latency": 0, + "ops": 0 + } + }, + "storageStats": { + "size": 2600, + "count": 100, + "avgObjSize": 26, + "numOrphanDocs": 0, + "storageSize": 16384, + "freeStorageSize": 0, + "capped": true, + "max": 10, + "maxSize": 10, + "wiredTiger": { + "metadata": { + "formatVersion": 1 + }, + "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=1),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=snappy,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,import=(compare_timestamp=oldest_timestamp,enabled=false,file_metadata=,metadata_file=,repair=false),internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=q,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=64MB,log=(enabled=true),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=10m,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),type=file,value_format=u,verbose=[],write_timestamp_usage=none", + "type": "file", + "uri": "statistics:table:collection-9-8106140632017571443", + "LSM": { + "bloom filter false positives": 0, + "bloom filter hits": 0, + "bloom filter misses": 0, + "bloom filter pages evicted from cache": 0, + "bloom filter pages read into cache": 0, + "bloom filters in the LSM tree": 0, + "chunks in the LSM tree": 0, + "highest merge generation in the LSM tree": 0, + "queries that could have benefited from a Bloom filter that did not exist": 0, + "sleep for LSM checkpoint throttle": 0, + "sleep for LSM merge throttle": 0, + "total size of bloom filters": 0 + }, + "autocommit": { + "retries for readonly operations": 0, + "retries for update operations": 0 + }, + "block-manager": { + "allocations requiring file extension": 4, + "blocks allocated": 4, + "blocks freed": 0, + "checkpoint size": 4096, + "file allocation unit size": 4096, + "file bytes available for reuse": 0, + "file magic number": 120897, + "file major version number": 1, + "file size in bytes": 20480, + "minor version number": 0 + }, + "btree": { + "btree checkpoint generation": 9, + "btree clean tree checkpoint expiration time": 9223372036854775807, + "btree compact pages reviewed": 0, + "btree compact pages rewritten": 0, + "btree compact pages skipped": 0, + "btree skipped by compaction as process would not reduce size": 0, + "column-store fixed-size leaf pages": 0, + "column-store fixed-size time windows": 0, + "column-store internal pages": 0, + "column-store variable-size RLE encoded values": 0, + "column-store variable-size deleted values": 0, + "column-store variable-size leaf pages": 0, + "fixed-record size": 0, + "maximum internal page size": 4096, + "maximum leaf page key size": 2867, + "maximum leaf page size": 32768, + "maximum leaf page value size": 67108864, + "maximum tree depth": 3, + "number of key/value pairs": 0, + "overflow pages": 0, + "row-store empty values": 0, + "row-store internal pages": 0, + "row-store leaf pages": 0 + }, + "cache": { + "bytes currently in the cache": 14551, + "bytes dirty in the cache cumulative": 899, + "bytes read into cache": 0, + "bytes written from cache": 3029, + "checkpoint blocked page eviction": 0, + "checkpoint of history store file blocked non-history store page eviction": 0, + "data source pages selected for eviction unable to be evicted": 0, + "eviction gave up due to detecting an out of order on disk value behind the last update on the chain": 0, + "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update": 0, + "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update after validating the update chain": 0, + "eviction gave up due to detecting out of order timestamps on the update chain after the selected on disk update": 0, + "eviction gave up due to needing to remove a record from the history store but checkpoint is running": 0, + "eviction walk passes of a file": 0, + "eviction walk target pages histogram - 0-9": 0, + "eviction walk target pages histogram - 10-31": 0, + "eviction walk target pages histogram - 128 and higher": 0, + "eviction walk target pages histogram - 32-63": 0, + "eviction walk target pages histogram - 64-128": 0, + "eviction walk target pages reduced due to history store cache pressure": 0, + "eviction walks abandoned": 0, + "eviction walks gave up because they restarted their walk twice": 0, + "eviction walks gave up because they saw too many pages and found no candidates": 0, + "eviction walks gave up because they saw too many pages and found too few candidates": 0, + "eviction walks reached end of tree": 0, + "eviction walks restarted": 0, + "eviction walks started from root of tree": 0, + "eviction walks started from saved location in tree": 0, + "hazard pointer blocked page eviction": 0, + "history store table insert calls": 0, + "history store table insert calls that returned restart": 0, + "history store table out-of-order resolved updates that lose their durable timestamp": 0, + "history store table out-of-order updates that were fixed up by reinserting with the fixed timestamp": 0, + "history store table reads": 0, + "history store table reads missed": 0, + "history store table reads requiring squashed modifies": 0, + "history store table truncation by rollback to stable to remove an unstable update": 0, + "history store table truncation by rollback to stable to remove an update": 0, + "history store table truncation to remove an update": 0, + "history store table truncation to remove range of updates due to key being removed from the data page during reconciliation": 0, + "history store table truncation to remove range of updates due to out-of-order timestamp update on data page": 0, + "history store table writes requiring squashed modifies": 0, + "in-memory page passed criteria to be split": 0, + "in-memory page splits": 0, + "internal pages evicted": 0, + "internal pages split during eviction": 0, + "leaf pages split during eviction": 0, + "modified pages evicted": 0, + "overflow pages read into cache": 0, + "page split during eviction deepened the tree": 0, + "page written requiring history store records": 0, + "pages read into cache": 0, + "pages read into cache after truncate": 1, + "pages read into cache after truncate in prepare state": 0, + "pages requested from the cache": 101, + "pages seen by eviction walk": 0, + "pages written from cache": 2, + "pages written requiring in-memory restoration": 0, + "the number of times full update inserted to history store": 0, + "the number of times reverse modify inserted to history store": 0, + "tracked dirty bytes in the cache": 0, + "unmodified pages evicted": 0 + }, + "cache_walk": { + "Average difference between current eviction generation when the page was last considered": 0, + "Average on-disk page image size seen": 0, + "Average time in cache for pages that have been visited by the eviction server": 0, + "Average time in cache for pages that have not been visited by the eviction server": 0, + "Clean pages currently in cache": 0, + "Current eviction generation": 0, + "Dirty pages currently in cache": 0, + "Entries in the root page": 0, + "Internal pages currently in cache": 0, + "Leaf pages currently in cache": 0, + "Maximum difference between current eviction generation when the page was last considered": 0, + "Maximum page size seen": 0, + "Minimum on-disk page image size seen": 0, + "Number of pages never visited by eviction server": 0, + "On-disk page image sizes smaller than a single allocation unit": 0, + "Pages created in memory and never written": 0, + "Pages currently queued for eviction": 0, + "Pages that could not be queued for eviction": 0, + "Refs skipped during cache traversal": 0, + "Size of the root page": 0, + "Total number of pages currently in cache": 0 + }, + "checkpoint-cleanup": { + "pages added for eviction": 0, + "pages removed": 0, + "pages skipped during tree walk": 0, + "pages visited": 1 + }, + "compression": { + "compressed page maximum internal page size prior to compression": 4096, + "compressed page maximum leaf page size prior to compression ": 131072, + "compressed pages read": 0, + "compressed pages written": 0, + "number of blocks with compress ratio greater than 64": 0, + "number of blocks with compress ratio smaller than 16": 0, + "number of blocks with compress ratio smaller than 2": 0, + "number of blocks with compress ratio smaller than 32": 0, + "number of blocks with compress ratio smaller than 4": 0, + "number of blocks with compress ratio smaller than 64": 0, + "number of blocks with compress ratio smaller than 8": 0, + "page written failed to compress": 0, + "page written was too small to compress": 2 + }, + "cursor": { + "Total number of entries skipped by cursor next calls": 0, + "Total number of entries skipped by cursor prev calls": 0, + "Total number of entries skipped to position the history store cursor": 0, + "Total number of times a search near has exited due to prefix config": 0, + "bulk loaded cursor insert calls": 0, + "cache cursors reuse count": 0, + "close calls that result in cache": 1, + "create calls": 2, + "cursor next calls that skip due to a globally visible history store tombstone": 0, + "cursor next calls that skip greater than or equal to 100 entries": 0, + "cursor next calls that skip less than 100 entries": 1, + "cursor prev calls that skip due to a globally visible history store tombstone": 0, + "cursor prev calls that skip greater than or equal to 100 entries": 0, + "cursor prev calls that skip less than 100 entries": 1, + "insert calls": 100, + "insert key and value bytes": 2737, + "modify": 0, + "modify key and value bytes affected": 0, + "modify value bytes modified": 0, + "next calls": 1, + "open cursor count": 0, + "operation restarted": 0, + "prev calls": 1, + "remove calls": 0, + "remove key bytes removed": 0, + "reserve calls": 0, + "reset calls": 6, + "search calls": 0, + "search history store calls": 0, + "search near calls": 0, + "truncate calls": 0, + "update calls": 0, + "update key and value bytes": 0, + "update value size change": 0 + }, + "reconciliation": { + "approximate byte size of timestamps in pages written": 0, + "approximate byte size of transaction IDs in pages written": 0, + "dictionary matches": 0, + "fast-path pages deleted": 0, + "internal page key bytes discarded using suffix compression": 0, + "internal page multi-block writes": 0, + "leaf page key bytes discarded using prefix compression": 0, + "leaf page multi-block writes": 0, + "leaf-page overflow keys": 0, + "maximum blocks required for a page": 1, + "overflow values written": 0, + "page reconciliation calls": 2, + "page reconciliation calls for eviction": 0, + "pages deleted": 0, + "pages written including an aggregated newest start durable timestamp ": 0, + "pages written including an aggregated newest stop durable timestamp ": 0, + "pages written including an aggregated newest stop timestamp ": 0, + "pages written including an aggregated newest stop transaction ID": 0, + "pages written including an aggregated newest transaction ID ": 0, + "pages written including an aggregated oldest start timestamp ": 0, + "pages written including an aggregated prepare": 0, + "pages written including at least one prepare": 0, + "pages written including at least one start durable timestamp": 0, + "pages written including at least one start timestamp": 0, + "pages written including at least one start transaction ID": 0, + "pages written including at least one stop durable timestamp": 0, + "pages written including at least one stop timestamp": 0, + "pages written including at least one stop transaction ID": 0, + "records written including a prepare": 0, + "records written including a start durable timestamp": 0, + "records written including a start timestamp": 0, + "records written including a start transaction ID": 0, + "records written including a stop durable timestamp": 0, + "records written including a stop timestamp": 0, + "records written including a stop transaction ID": 0 + }, + "session": { + "object compaction": 0, + "tiered operations dequeued and processed": 0, + "tiered operations scheduled": 0, + "tiered storage local retention time (secs)": 0 + }, + "transaction": { + "a reader raced with a prepared transaction commit and skipped an update or updates": 0, + "checkpoint has acquired a snapshot for its transaction": 0, + "race to read prepared update retry": 0, + "rollback to stable history store records with stop timestamps older than newer records": 0, + "rollback to stable inconsistent checkpoint": 0, + "rollback to stable keys removed": 0, + "rollback to stable keys restored": 0, + "rollback to stable restored tombstones from history store": 0, + "rollback to stable restored updates from history store": 0, + "rollback to stable skipping delete rle": 0, + "rollback to stable skipping stable rle": 0, + "rollback to stable sweeping history store keys": 0, + "rollback to stable updates removed from history store": 0, + "transaction checkpoints due to obsolete pages": 0, + "update conflicts": 0 + } + }, + "nindexes": 1, + "indexDetails": { + "_id_": { + "metadata": { + "formatVersion": 8 + }, + "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=8),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,import=(compare_timestamp=oldest_timestamp,enabled=false,file_metadata=,metadata_file=,repair=false),internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=16k,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=16k,leaf_value_max=0,log=(enabled=true),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=true,prefix_compression_min=4,readonly=false,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),type=file,value_format=u,verbose=[],write_timestamp_usage=none", + "type": "file", + "uri": "statistics:table:index-10-8106140632017571443", + "LSM": { + "bloom filter false positives": 0, + "bloom filter hits": 0, + "bloom filter misses": 0, + "bloom filter pages evicted from cache": 0, + "bloom filter pages read into cache": 0, + "bloom filters in the LSM tree": 0, + "chunks in the LSM tree": 0, + "highest merge generation in the LSM tree": 0, + "queries that could have benefited from a Bloom filter that did not exist": 0, + "sleep for LSM checkpoint throttle": 0, + "sleep for LSM merge throttle": 0, + "total size of bloom filters": 0 + }, + "autocommit": { + "retries for readonly operations": 0, + "retries for update operations": 0 + }, + "block-manager": { + "allocations requiring file extension": 4, + "blocks allocated": 4, + "blocks freed": 0, + "checkpoint size": 4096, + "file allocation unit size": 4096, + "file bytes available for reuse": 0, + "file magic number": 120897, + "file major version number": 1, + "file size in bytes": 20480, + "minor version number": 0 + }, + "btree": { + "btree checkpoint generation": 9, + "btree clean tree checkpoint expiration time": 9223372036854775807, + "btree compact pages reviewed": 0, + "btree compact pages rewritten": 0, + "btree compact pages skipped": 0, + "btree skipped by compaction as process would not reduce size": 0, + "column-store fixed-size leaf pages": 0, + "column-store fixed-size time windows": 0, + "column-store internal pages": 0, + "column-store variable-size RLE encoded values": 0, + "column-store variable-size deleted values": 0, + "column-store variable-size leaf pages": 0, + "fixed-record size": 0, + "maximum internal page size": 16384, + "maximum leaf page key size": 1474, + "maximum leaf page size": 16384, + "maximum leaf page value size": 7372, + "maximum tree depth": 3, + "number of key/value pairs": 0, + "overflow pages": 0, + "row-store empty values": 0, + "row-store internal pages": 0, + "row-store leaf pages": 0 + }, + "cache": { + "bytes currently in the cache": 12390, + "bytes dirty in the cache cumulative": 899, + "bytes read into cache": 0, + "bytes written from cache": 833, + "checkpoint blocked page eviction": 0, + "checkpoint of history store file blocked non-history store page eviction": 0, + "data source pages selected for eviction unable to be evicted": 0, + "eviction gave up due to detecting an out of order on disk value behind the last update on the chain": 0, + "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update": 0, + "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update after validating the update chain": 0, + "eviction gave up due to detecting out of order timestamps on the update chain after the selected on disk update": 0, + "eviction gave up due to needing to remove a record from the history store but checkpoint is running": 0, + "eviction walk passes of a file": 0, + "eviction walk target pages histogram - 0-9": 0, + "eviction walk target pages histogram - 10-31": 0, + "eviction walk target pages histogram - 128 and higher": 0, + "eviction walk target pages histogram - 32-63": 0, + "eviction walk target pages histogram - 64-128": 0, + "eviction walk target pages reduced due to history store cache pressure": 0, + "eviction walks abandoned": 0, + "eviction walks gave up because they restarted their walk twice": 0, + "eviction walks gave up because they saw too many pages and found no candidates": 0, + "eviction walks gave up because they saw too many pages and found too few candidates": 0, + "eviction walks reached end of tree": 0, + "eviction walks restarted": 0, + "eviction walks started from root of tree": 0, + "eviction walks started from saved location in tree": 0, + "hazard pointer blocked page eviction": 0, + "history store table insert calls": 0, + "history store table insert calls that returned restart": 0, + "history store table out-of-order resolved updates that lose their durable timestamp": 0, + "history store table out-of-order updates that were fixed up by reinserting with the fixed timestamp": 0, + "history store table reads": 0, + "history store table reads missed": 0, + "history store table reads requiring squashed modifies": 0, + "history store table truncation by rollback to stable to remove an unstable update": 0, + "history store table truncation by rollback to stable to remove an update": 0, + "history store table truncation to remove an update": 0, + "history store table truncation to remove range of updates due to key being removed from the data page during reconciliation": 0, + "history store table truncation to remove range of updates due to out-of-order timestamp update on data page": 0, + "history store table writes requiring squashed modifies": 0, + "in-memory page passed criteria to be split": 0, + "in-memory page splits": 0, + "internal pages evicted": 0, + "internal pages split during eviction": 0, + "leaf pages split during eviction": 0, + "modified pages evicted": 0, + "overflow pages read into cache": 0, + "page split during eviction deepened the tree": 0, + "page written requiring history store records": 0, + "pages read into cache": 0, + "pages read into cache after truncate": 1, + "pages read into cache after truncate in prepare state": 0, + "pages requested from the cache": 101, + "pages seen by eviction walk": 0, + "pages written from cache": 2, + "pages written requiring in-memory restoration": 0, + "the number of times full update inserted to history store": 0, + "the number of times reverse modify inserted to history store": 0, + "tracked dirty bytes in the cache": 0, + "unmodified pages evicted": 0 + }, + "cache_walk": { + "Average difference between current eviction generation when the page was last considered": 0, + "Average on-disk page image size seen": 0, + "Average time in cache for pages that have been visited by the eviction server": 0, + "Average time in cache for pages that have not been visited by the eviction server": 0, + "Clean pages currently in cache": 0, + "Current eviction generation": 0, + "Dirty pages currently in cache": 0, + "Entries in the root page": 0, + "Internal pages currently in cache": 0, + "Leaf pages currently in cache": 0, + "Maximum difference between current eviction generation when the page was last considered": 0, + "Maximum page size seen": 0, + "Minimum on-disk page image size seen": 0, + "Number of pages never visited by eviction server": 0, + "On-disk page image sizes smaller than a single allocation unit": 0, + "Pages created in memory and never written": 0, + "Pages currently queued for eviction": 0, + "Pages that could not be queued for eviction": 0, + "Refs skipped during cache traversal": 0, + "Size of the root page": 0, + "Total number of pages currently in cache": 0 + }, + "checkpoint-cleanup": { + "pages added for eviction": 0, + "pages removed": 0, + "pages skipped during tree walk": 0, + "pages visited": 1 + }, + "compression": { + "compressed page maximum internal page size prior to compression": 16384, + "compressed page maximum leaf page size prior to compression ": 16384, + "compressed pages read": 0, + "compressed pages written": 0, + "number of blocks with compress ratio greater than 64": 0, + "number of blocks with compress ratio smaller than 16": 0, + "number of blocks with compress ratio smaller than 2": 0, + "number of blocks with compress ratio smaller than 32": 0, + "number of blocks with compress ratio smaller than 4": 0, + "number of blocks with compress ratio smaller than 64": 0, + "number of blocks with compress ratio smaller than 8": 0, + "page written failed to compress": 0, + "page written was too small to compress": 0 + }, + "cursor": { + "Total number of entries skipped by cursor next calls": 0, + "Total number of entries skipped by cursor prev calls": 0, + "Total number of entries skipped to position the history store cursor": 0, + "Total number of times a search near has exited due to prefix config": 0, + "bulk loaded cursor insert calls": 0, + "cache cursors reuse count": 0, + "close calls that result in cache": 1, + "create calls": 1, + "cursor next calls that skip due to a globally visible history store tombstone": 0, + "cursor next calls that skip greater than or equal to 100 entries": 0, + "cursor next calls that skip less than 100 entries": 0, + "cursor prev calls that skip due to a globally visible history store tombstone": 0, + "cursor prev calls that skip greater than or equal to 100 entries": 0, + "cursor prev calls that skip less than 100 entries": 0, + "insert calls": 100, + "insert key and value bytes": 1600, + "modify": 0, + "modify key and value bytes affected": 0, + "modify value bytes modified": 0, + "next calls": 0, + "open cursor count": 0, + "operation restarted": 0, + "prev calls": 0, + "remove calls": 0, + "remove key bytes removed": 0, + "reserve calls": 0, + "reset calls": 101, + "search calls": 0, + "search history store calls": 0, + "search near calls": 0, + "truncate calls": 0, + "update calls": 0, + "update key and value bytes": 0, + "update value size change": 0 + }, + "reconciliation": { + "approximate byte size of timestamps in pages written": 0, + "approximate byte size of transaction IDs in pages written": 0, + "dictionary matches": 0, + "fast-path pages deleted": 0, + "internal page key bytes discarded using suffix compression": 0, + "internal page multi-block writes": 0, + "leaf page key bytes discarded using prefix compression": 1158, + "leaf page multi-block writes": 0, + "leaf-page overflow keys": 0, + "maximum blocks required for a page": 1, + "overflow values written": 0, + "page reconciliation calls": 2, + "page reconciliation calls for eviction": 0, + "pages deleted": 0, + "pages written including an aggregated newest start durable timestamp ": 0, + "pages written including an aggregated newest stop durable timestamp ": 0, + "pages written including an aggregated newest stop timestamp ": 0, + "pages written including an aggregated newest stop transaction ID": 0, + "pages written including an aggregated newest transaction ID ": 0, + "pages written including an aggregated oldest start timestamp ": 0, + "pages written including an aggregated prepare": 0, + "pages written including at least one prepare": 0, + "pages written including at least one start durable timestamp": 0, + "pages written including at least one start timestamp": 0, + "pages written including at least one start transaction ID": 0, + "pages written including at least one stop durable timestamp": 0, + "pages written including at least one stop timestamp": 0, + "pages written including at least one stop transaction ID": 0, + "records written including a prepare": 0, + "records written including a start durable timestamp": 0, + "records written including a start timestamp": 0, + "records written including a start transaction ID": 0, + "records written including a stop durable timestamp": 0, + "records written including a stop timestamp": 0, + "records written including a stop transaction ID": 0 + }, + "session": { + "object compaction": 0, + "tiered operations dequeued and processed": 0, + "tiered operations scheduled": 0, + "tiered storage local retention time (secs)": 0 + }, + "transaction": { + "a reader raced with a prepared transaction commit and skipped an update or updates": 0, + "checkpoint has acquired a snapshot for its transaction": 0, + "race to read prepared update retry": 0, + "rollback to stable history store records with stop timestamps older than newer records": 0, + "rollback to stable inconsistent checkpoint": 0, + "rollback to stable keys removed": 0, + "rollback to stable keys restored": 0, + "rollback to stable restored tombstones from history store": 0, + "rollback to stable restored updates from history store": 0, + "rollback to stable skipping delete rle": 0, + "rollback to stable skipping stable rle": 0, + "rollback to stable sweeping history store keys": 0, + "rollback to stable updates removed from history store": 0, + "transaction checkpoints due to obsolete pages": 0, + "update conflicts": 0 + } + } + }, + "indexBuilds": [], + "totalIndexSize": 16384, + "totalSize": 40960, + "indexSizes": { + "_id_": 16384 + }, + "scaleFactor": 1 + }, + "queryExecStats": { + "collectionScans": { + "total": 0, + "nonTailable": 0 + } + } + } +] \ No newline at end of file diff --git a/mongo/tests/fixtures/$collStats-foo b/mongo/tests/fixtures/$collStats-foo new file mode 100644 index 0000000000000..9f9a40a9e1b49 --- /dev/null +++ b/mongo/tests/fixtures/$collStats-foo @@ -0,0 +1,586 @@ +[ + { + "ns": "test.foo", + "host": "7515219d9503:27017", + "localTime": { + "$date": "2024-07-01T20:36:49.358Z" + }, + "latencyStats": { + "reads": { + "latency": 13165, + "ops": 10 + }, + "writes": { + "latency": 8542, + "ops": 1 + }, + "commands": { + "latency": 0, + "ops": 0 + }, + "transactions": { + "latency": 0, + "ops": 0 + } + }, + "storageStats": { + "size": 5670, + "count": 210, + "avgObjSize": 27, + "numOrphanDocs": 0, + "storageSize": 16384, + "freeStorageSize": 0, + "capped": true, + "max": 10, + "maxSize": 10, + "wiredTiger": { + "metadata": { + "formatVersion": 1 + }, + "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=1),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=snappy,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,import=(compare_timestamp=oldest_timestamp,enabled=false,file_metadata=,metadata_file=,repair=false),internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=q,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=64MB,log=(enabled=true),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=10m,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),type=file,value_format=u,verbose=[],write_timestamp_usage=none", + "type": "file", + "uri": "statistics:table:collection-7-8106140632017571443", + "LSM": { + "bloom filter false positives": 0, + "bloom filter hits": 0, + "bloom filter misses": 0, + "bloom filter pages evicted from cache": 0, + "bloom filter pages read into cache": 0, + "bloom filters in the LSM tree": 0, + "chunks in the LSM tree": 0, + "highest merge generation in the LSM tree": 0, + "queries that could have benefited from a Bloom filter that did not exist": 0, + "sleep for LSM checkpoint throttle": 0, + "sleep for LSM merge throttle": 0, + "total size of bloom filters": 0 + }, + "autocommit": { + "retries for readonly operations": 0, + "retries for update operations": 0 + }, + "block-manager": { + "allocations requiring file extension": 4, + "blocks allocated": 4, + "blocks freed": 0, + "checkpoint size": 4096, + "file allocation unit size": 4096, + "file bytes available for reuse": 0, + "file magic number": 120897, + "file major version number": 1, + "file size in bytes": 20480, + "minor version number": 0 + }, + "btree": { + "btree checkpoint generation": 8, + "btree clean tree checkpoint expiration time": 9223372036854775807, + "btree compact pages reviewed": 0, + "btree compact pages rewritten": 0, + "btree compact pages skipped": 0, + "btree skipped by compaction as process would not reduce size": 0, + "column-store fixed-size leaf pages": 0, + "column-store fixed-size time windows": 0, + "column-store internal pages": 0, + "column-store variable-size RLE encoded values": 0, + "column-store variable-size deleted values": 0, + "column-store variable-size leaf pages": 0, + "fixed-record size": 0, + "maximum internal page size": 4096, + "maximum leaf page key size": 2867, + "maximum leaf page size": 32768, + "maximum leaf page value size": 67108864, + "maximum tree depth": 3, + "number of key/value pairs": 0, + "overflow pages": 0, + "row-store empty values": 0, + "row-store internal pages": 0, + "row-store leaf pages": 0 + }, + "cache": { + "bytes currently in the cache": 29270, + "bytes dirty in the cache cumulative": 899, + "bytes read into cache": 0, + "bytes written from cache": 6539, + "checkpoint blocked page eviction": 0, + "checkpoint of history store file blocked non-history store page eviction": 0, + "data source pages selected for eviction unable to be evicted": 0, + "eviction gave up due to detecting an out of order on disk value behind the last update on the chain": 0, + "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update": 0, + "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update after validating the update chain": 0, + "eviction gave up due to detecting out of order timestamps on the update chain after the selected on disk update": 0, + "eviction gave up due to needing to remove a record from the history store but checkpoint is running": 0, + "eviction walk passes of a file": 0, + "eviction walk target pages histogram - 0-9": 0, + "eviction walk target pages histogram - 10-31": 0, + "eviction walk target pages histogram - 128 and higher": 0, + "eviction walk target pages histogram - 32-63": 0, + "eviction walk target pages histogram - 64-128": 0, + "eviction walk target pages reduced due to history store cache pressure": 0, + "eviction walks abandoned": 0, + "eviction walks gave up because they restarted their walk twice": 0, + "eviction walks gave up because they saw too many pages and found no candidates": 0, + "eviction walks gave up because they saw too many pages and found too few candidates": 0, + "eviction walks reached end of tree": 0, + "eviction walks restarted": 0, + "eviction walks started from root of tree": 0, + "eviction walks started from saved location in tree": 0, + "hazard pointer blocked page eviction": 0, + "history store table insert calls": 0, + "history store table insert calls that returned restart": 0, + "history store table out-of-order resolved updates that lose their durable timestamp": 0, + "history store table out-of-order updates that were fixed up by reinserting with the fixed timestamp": 0, + "history store table reads": 0, + "history store table reads missed": 0, + "history store table reads requiring squashed modifies": 0, + "history store table truncation by rollback to stable to remove an unstable update": 0, + "history store table truncation by rollback to stable to remove an update": 0, + "history store table truncation to remove an update": 0, + "history store table truncation to remove range of updates due to key being removed from the data page during reconciliation": 0, + "history store table truncation to remove range of updates due to out-of-order timestamp update on data page": 0, + "history store table writes requiring squashed modifies": 0, + "in-memory page passed criteria to be split": 0, + "in-memory page splits": 0, + "internal pages evicted": 0, + "internal pages split during eviction": 0, + "leaf pages split during eviction": 0, + "modified pages evicted": 0, + "overflow pages read into cache": 0, + "page split during eviction deepened the tree": 0, + "page written requiring history store records": 0, + "pages read into cache": 0, + "pages read into cache after truncate": 1, + "pages read into cache after truncate in prepare state": 0, + "pages requested from the cache": 211, + "pages seen by eviction walk": 0, + "pages written from cache": 2, + "pages written requiring in-memory restoration": 0, + "the number of times full update inserted to history store": 0, + "the number of times reverse modify inserted to history store": 0, + "tracked dirty bytes in the cache": 0, + "unmodified pages evicted": 0 + }, + "cache_walk": { + "Average difference between current eviction generation when the page was last considered": 0, + "Average on-disk page image size seen": 0, + "Average time in cache for pages that have been visited by the eviction server": 0, + "Average time in cache for pages that have not been visited by the eviction server": 0, + "Clean pages currently in cache": 0, + "Current eviction generation": 0, + "Dirty pages currently in cache": 0, + "Entries in the root page": 0, + "Internal pages currently in cache": 0, + "Leaf pages currently in cache": 0, + "Maximum difference between current eviction generation when the page was last considered": 0, + "Maximum page size seen": 0, + "Minimum on-disk page image size seen": 0, + "Number of pages never visited by eviction server": 0, + "On-disk page image sizes smaller than a single allocation unit": 0, + "Pages created in memory and never written": 0, + "Pages currently queued for eviction": 0, + "Pages that could not be queued for eviction": 0, + "Refs skipped during cache traversal": 0, + "Size of the root page": 0, + "Total number of pages currently in cache": 0 + }, + "checkpoint-cleanup": { + "pages added for eviction": 0, + "pages removed": 0, + "pages skipped during tree walk": 0, + "pages visited": 1 + }, + "compression": { + "compressed page maximum internal page size prior to compression": 4096, + "compressed page maximum leaf page size prior to compression ": 131072, + "compressed pages read": 0, + "compressed pages written": 1, + "number of blocks with compress ratio greater than 64": 0, + "number of blocks with compress ratio smaller than 16": 0, + "number of blocks with compress ratio smaller than 2": 0, + "number of blocks with compress ratio smaller than 32": 0, + "number of blocks with compress ratio smaller than 4": 0, + "number of blocks with compress ratio smaller than 64": 0, + "number of blocks with compress ratio smaller than 8": 0, + "page written failed to compress": 0, + "page written was too small to compress": 1 + }, + "cursor": { + "Total number of entries skipped by cursor next calls": 0, + "Total number of entries skipped by cursor prev calls": 0, + "Total number of entries skipped to position the history store cursor": 0, + "Total number of times a search near has exited due to prefix config": 0, + "bulk loaded cursor insert calls": 0, + "cache cursors reuse count": 0, + "close calls that result in cache": 1, + "create calls": 2, + "cursor next calls that skip due to a globally visible history store tombstone": 0, + "cursor next calls that skip greater than or equal to 100 entries": 0, + "cursor next calls that skip less than 100 entries": 1, + "cursor prev calls that skip due to a globally visible history store tombstone": 0, + "cursor prev calls that skip greater than or equal to 100 entries": 0, + "cursor prev calls that skip less than 100 entries": 1, + "insert calls": 210, + "insert key and value bytes": 6027, + "modify": 0, + "modify key and value bytes affected": 0, + "modify value bytes modified": 0, + "next calls": 1, + "open cursor count": 0, + "operation restarted": 0, + "prev calls": 1, + "remove calls": 0, + "remove key bytes removed": 0, + "reserve calls": 0, + "reset calls": 8, + "search calls": 0, + "search history store calls": 0, + "search near calls": 0, + "truncate calls": 0, + "update calls": 0, + "update key and value bytes": 0, + "update value size change": 0 + }, + "reconciliation": { + "approximate byte size of timestamps in pages written": 0, + "approximate byte size of transaction IDs in pages written": 0, + "dictionary matches": 0, + "fast-path pages deleted": 0, + "internal page key bytes discarded using suffix compression": 0, + "internal page multi-block writes": 0, + "leaf page key bytes discarded using prefix compression": 0, + "leaf page multi-block writes": 0, + "leaf-page overflow keys": 0, + "maximum blocks required for a page": 1, + "overflow values written": 0, + "page reconciliation calls": 2, + "page reconciliation calls for eviction": 0, + "pages deleted": 0, + "pages written including an aggregated newest start durable timestamp ": 0, + "pages written including an aggregated newest stop durable timestamp ": 0, + "pages written including an aggregated newest stop timestamp ": 0, + "pages written including an aggregated newest stop transaction ID": 0, + "pages written including an aggregated newest transaction ID ": 0, + "pages written including an aggregated oldest start timestamp ": 0, + "pages written including an aggregated prepare": 0, + "pages written including at least one prepare": 0, + "pages written including at least one start durable timestamp": 0, + "pages written including at least one start timestamp": 0, + "pages written including at least one start transaction ID": 0, + "pages written including at least one stop durable timestamp": 0, + "pages written including at least one stop timestamp": 0, + "pages written including at least one stop transaction ID": 0, + "records written including a prepare": 0, + "records written including a start durable timestamp": 0, + "records written including a start timestamp": 0, + "records written including a start transaction ID": 0, + "records written including a stop durable timestamp": 0, + "records written including a stop timestamp": 0, + "records written including a stop transaction ID": 0 + }, + "session": { + "object compaction": 0, + "tiered operations dequeued and processed": 0, + "tiered operations scheduled": 0, + "tiered storage local retention time (secs)": 0 + }, + "transaction": { + "a reader raced with a prepared transaction commit and skipped an update or updates": 0, + "checkpoint has acquired a snapshot for its transaction": 0, + "race to read prepared update retry": 0, + "rollback to stable history store records with stop timestamps older than newer records": 0, + "rollback to stable inconsistent checkpoint": 0, + "rollback to stable keys removed": 0, + "rollback to stable keys restored": 0, + "rollback to stable restored tombstones from history store": 0, + "rollback to stable restored updates from history store": 0, + "rollback to stable skipping delete rle": 0, + "rollback to stable skipping stable rle": 0, + "rollback to stable sweeping history store keys": 0, + "rollback to stable updates removed from history store": 0, + "transaction checkpoints due to obsolete pages": 0, + "update conflicts": 0 + } + }, + "nindexes": 1, + "indexDetails": { + "_id_": { + "metadata": { + "formatVersion": 8 + }, + "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=8),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,import=(compare_timestamp=oldest_timestamp,enabled=false,file_metadata=,metadata_file=,repair=false),internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=16k,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=16k,leaf_value_max=0,log=(enabled=true),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=true,prefix_compression_min=4,readonly=false,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),type=file,value_format=u,verbose=[],write_timestamp_usage=none", + "type": "file", + "uri": "statistics:table:index-8-8106140632017571443", + "LSM": { + "bloom filter false positives": 0, + "bloom filter hits": 0, + "bloom filter misses": 0, + "bloom filter pages evicted from cache": 0, + "bloom filter pages read into cache": 0, + "bloom filters in the LSM tree": 0, + "chunks in the LSM tree": 0, + "highest merge generation in the LSM tree": 0, + "queries that could have benefited from a Bloom filter that did not exist": 0, + "sleep for LSM checkpoint throttle": 0, + "sleep for LSM merge throttle": 0, + "total size of bloom filters": 0 + }, + "autocommit": { + "retries for readonly operations": 0, + "retries for update operations": 0 + }, + "block-manager": { + "allocations requiring file extension": 4, + "blocks allocated": 4, + "blocks freed": 0, + "checkpoint size": 4096, + "file allocation unit size": 4096, + "file bytes available for reuse": 0, + "file magic number": 120897, + "file major version number": 1, + "file size in bytes": 20480, + "minor version number": 0 + }, + "btree": { + "btree checkpoint generation": 8, + "btree clean tree checkpoint expiration time": 9223372036854775807, + "btree compact pages reviewed": 0, + "btree compact pages rewritten": 0, + "btree compact pages skipped": 0, + "btree skipped by compaction as process would not reduce size": 0, + "column-store fixed-size leaf pages": 0, + "column-store fixed-size time windows": 0, + "column-store internal pages": 0, + "column-store variable-size RLE encoded values": 0, + "column-store variable-size deleted values": 0, + "column-store variable-size leaf pages": 0, + "fixed-record size": 0, + "maximum internal page size": 16384, + "maximum leaf page key size": 1474, + "maximum leaf page size": 16384, + "maximum leaf page value size": 7372, + "maximum tree depth": 3, + "number of key/value pairs": 0, + "overflow pages": 0, + "row-store empty values": 0, + "row-store internal pages": 0, + "row-store leaf pages": 0 + }, + "cache": { + "bytes currently in the cache": 24759, + "bytes dirty in the cache cumulative": 899, + "bytes read into cache": 0, + "bytes written from cache": 1759, + "checkpoint blocked page eviction": 0, + "checkpoint of history store file blocked non-history store page eviction": 0, + "data source pages selected for eviction unable to be evicted": 0, + "eviction gave up due to detecting an out of order on disk value behind the last update on the chain": 0, + "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update": 0, + "eviction gave up due to detecting an out of order tombstone ahead of the selected on disk update after validating the update chain": 0, + "eviction gave up due to detecting out of order timestamps on the update chain after the selected on disk update": 0, + "eviction gave up due to needing to remove a record from the history store but checkpoint is running": 0, + "eviction walk passes of a file": 0, + "eviction walk target pages histogram - 0-9": 0, + "eviction walk target pages histogram - 10-31": 0, + "eviction walk target pages histogram - 128 and higher": 0, + "eviction walk target pages histogram - 32-63": 0, + "eviction walk target pages histogram - 64-128": 0, + "eviction walk target pages reduced due to history store cache pressure": 0, + "eviction walks abandoned": 0, + "eviction walks gave up because they restarted their walk twice": 0, + "eviction walks gave up because they saw too many pages and found no candidates": 0, + "eviction walks gave up because they saw too many pages and found too few candidates": 0, + "eviction walks reached end of tree": 0, + "eviction walks restarted": 0, + "eviction walks started from root of tree": 0, + "eviction walks started from saved location in tree": 0, + "hazard pointer blocked page eviction": 0, + "history store table insert calls": 0, + "history store table insert calls that returned restart": 0, + "history store table out-of-order resolved updates that lose their durable timestamp": 0, + "history store table out-of-order updates that were fixed up by reinserting with the fixed timestamp": 0, + "history store table reads": 0, + "history store table reads missed": 0, + "history store table reads requiring squashed modifies": 0, + "history store table truncation by rollback to stable to remove an unstable update": 0, + "history store table truncation by rollback to stable to remove an update": 0, + "history store table truncation to remove an update": 0, + "history store table truncation to remove range of updates due to key being removed from the data page during reconciliation": 0, + "history store table truncation to remove range of updates due to out-of-order timestamp update on data page": 0, + "history store table writes requiring squashed modifies": 0, + "in-memory page passed criteria to be split": 0, + "in-memory page splits": 0, + "internal pages evicted": 0, + "internal pages split during eviction": 0, + "leaf pages split during eviction": 0, + "modified pages evicted": 0, + "overflow pages read into cache": 0, + "page split during eviction deepened the tree": 0, + "page written requiring history store records": 0, + "pages read into cache": 0, + "pages read into cache after truncate": 1, + "pages read into cache after truncate in prepare state": 0, + "pages requested from the cache": 211, + "pages seen by eviction walk": 0, + "pages written from cache": 2, + "pages written requiring in-memory restoration": 0, + "the number of times full update inserted to history store": 0, + "the number of times reverse modify inserted to history store": 0, + "tracked dirty bytes in the cache": 0, + "unmodified pages evicted": 0 + }, + "cache_walk": { + "Average difference between current eviction generation when the page was last considered": 0, + "Average on-disk page image size seen": 0, + "Average time in cache for pages that have been visited by the eviction server": 0, + "Average time in cache for pages that have not been visited by the eviction server": 0, + "Clean pages currently in cache": 0, + "Current eviction generation": 0, + "Dirty pages currently in cache": 0, + "Entries in the root page": 0, + "Internal pages currently in cache": 0, + "Leaf pages currently in cache": 0, + "Maximum difference between current eviction generation when the page was last considered": 0, + "Maximum page size seen": 0, + "Minimum on-disk page image size seen": 0, + "Number of pages never visited by eviction server": 0, + "On-disk page image sizes smaller than a single allocation unit": 0, + "Pages created in memory and never written": 0, + "Pages currently queued for eviction": 0, + "Pages that could not be queued for eviction": 0, + "Refs skipped during cache traversal": 0, + "Size of the root page": 0, + "Total number of pages currently in cache": 0 + }, + "checkpoint-cleanup": { + "pages added for eviction": 0, + "pages removed": 0, + "pages skipped during tree walk": 0, + "pages visited": 1 + }, + "compression": { + "compressed page maximum internal page size prior to compression": 16384, + "compressed page maximum leaf page size prior to compression ": 16384, + "compressed pages read": 0, + "compressed pages written": 0, + "number of blocks with compress ratio greater than 64": 0, + "number of blocks with compress ratio smaller than 16": 0, + "number of blocks with compress ratio smaller than 2": 0, + "number of blocks with compress ratio smaller than 32": 0, + "number of blocks with compress ratio smaller than 4": 0, + "number of blocks with compress ratio smaller than 64": 0, + "number of blocks with compress ratio smaller than 8": 0, + "page written failed to compress": 0, + "page written was too small to compress": 0 + }, + "cursor": { + "Total number of entries skipped by cursor next calls": 0, + "Total number of entries skipped by cursor prev calls": 0, + "Total number of entries skipped to position the history store cursor": 0, + "Total number of times a search near has exited due to prefix config": 0, + "bulk loaded cursor insert calls": 0, + "cache cursors reuse count": 0, + "close calls that result in cache": 1, + "create calls": 1, + "cursor next calls that skip due to a globally visible history store tombstone": 0, + "cursor next calls that skip greater than or equal to 100 entries": 0, + "cursor next calls that skip less than 100 entries": 0, + "cursor prev calls that skip due to a globally visible history store tombstone": 0, + "cursor prev calls that skip greater than or equal to 100 entries": 0, + "cursor prev calls that skip less than 100 entries": 0, + "insert calls": 210, + "insert key and value bytes": 3360, + "modify": 0, + "modify key and value bytes affected": 0, + "modify value bytes modified": 0, + "next calls": 0, + "open cursor count": 0, + "operation restarted": 0, + "prev calls": 0, + "remove calls": 0, + "remove key bytes removed": 0, + "reserve calls": 0, + "reset calls": 211, + "search calls": 0, + "search history store calls": 0, + "search near calls": 0, + "truncate calls": 0, + "update calls": 0, + "update key and value bytes": 0, + "update value size change": 0 + }, + "reconciliation": { + "approximate byte size of timestamps in pages written": 0, + "approximate byte size of transaction IDs in pages written": 0, + "dictionary matches": 0, + "fast-path pages deleted": 0, + "internal page key bytes discarded using suffix compression": 0, + "internal page multi-block writes": 0, + "leaf page key bytes discarded using prefix compression": 2322, + "leaf page multi-block writes": 0, + "leaf-page overflow keys": 0, + "maximum blocks required for a page": 1, + "overflow values written": 0, + "page reconciliation calls": 2, + "page reconciliation calls for eviction": 0, + "pages deleted": 0, + "pages written including an aggregated newest start durable timestamp ": 0, + "pages written including an aggregated newest stop durable timestamp ": 0, + "pages written including an aggregated newest stop timestamp ": 0, + "pages written including an aggregated newest stop transaction ID": 0, + "pages written including an aggregated newest transaction ID ": 0, + "pages written including an aggregated oldest start timestamp ": 0, + "pages written including an aggregated prepare": 0, + "pages written including at least one prepare": 0, + "pages written including at least one start durable timestamp": 0, + "pages written including at least one start timestamp": 0, + "pages written including at least one start transaction ID": 0, + "pages written including at least one stop durable timestamp": 0, + "pages written including at least one stop timestamp": 0, + "pages written including at least one stop transaction ID": 0, + "records written including a prepare": 0, + "records written including a start durable timestamp": 0, + "records written including a start timestamp": 0, + "records written including a start transaction ID": 0, + "records written including a stop durable timestamp": 0, + "records written including a stop timestamp": 0, + "records written including a stop transaction ID": 0 + }, + "session": { + "object compaction": 0, + "tiered operations dequeued and processed": 0, + "tiered operations scheduled": 0, + "tiered storage local retention time (secs)": 0 + }, + "transaction": { + "a reader raced with a prepared transaction commit and skipped an update or updates": 0, + "checkpoint has acquired a snapshot for its transaction": 0, + "race to read prepared update retry": 0, + "rollback to stable history store records with stop timestamps older than newer records": 0, + "rollback to stable inconsistent checkpoint": 0, + "rollback to stable keys removed": 0, + "rollback to stable keys restored": 0, + "rollback to stable restored tombstones from history store": 0, + "rollback to stable restored updates from history store": 0, + "rollback to stable skipping delete rle": 0, + "rollback to stable skipping stable rle": 0, + "rollback to stable sweeping history store keys": 0, + "rollback to stable updates removed from history store": 0, + "transaction checkpoints due to obsolete pages": 0, + "update conflicts": 0 + } + } + }, + "indexBuilds": [], + "totalIndexSize": 16384, + "totalSize": 40960, + "indexSizes": { + "_id_": 16384 + }, + "scaleFactor": 1 + }, + "queryExecStats": { + "collectionScans": { + "total": 0, + "nonTailable": 0 + } + } + } +] \ No newline at end of file diff --git a/mongo/tests/fixtures/indexStats-bar b/mongo/tests/fixtures/$indexStats-bar similarity index 100% rename from mongo/tests/fixtures/indexStats-bar rename to mongo/tests/fixtures/$indexStats-bar diff --git a/mongo/tests/fixtures/indexStats-foo b/mongo/tests/fixtures/$indexStats-foo similarity index 100% rename from mongo/tests/fixtures/indexStats-foo rename to mongo/tests/fixtures/$indexStats-foo diff --git a/mongo/tests/fixtures/collstats-bar b/mongo/tests/fixtures/collstats-bar deleted file mode 100644 index af0d8b5ea8a24..0000000000000 --- a/mongo/tests/fixtures/collstats-bar +++ /dev/null @@ -1,810 +0,0 @@ -{ - "sharded": false, - "primary": "shard01", - "capped": false, - "wiredTiger": { - "metadata": { - "formatVersion": 1 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=1),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=q,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=64MB,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=10m,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:collection-23-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 138, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 368, - "maximum internal page size": 4096, - "maximum leaf page key size": 2867, - "maximum leaf page size": 32768, - "maximum leaf page value size": 67108864, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 12806, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 3028, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 101, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 4096, - "compressed page maximum leaf page size prior to compression ": 131072, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 2 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 31, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 100, - "insert key and value bytes": 2737, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 1, - "prev calls": 1, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 94, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 0, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - }, - "indexDetails": { - "_id_": { - "metadata": { - "formatVersion": 8 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=8),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=16k,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=16k,leaf_value_max=0,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=true,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:index-24-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 138, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 1474, - "maximum internal page size": 16384, - "maximum leaf page key size": 1474, - "maximum leaf page size": 16384, - "maximum leaf page value size": 7372, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 12416, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 802, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 100, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 16384, - "compressed page maximum leaf page size prior to compression ": 16384, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 0 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 30, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 100, - "insert key and value bytes": 1600, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 0, - "prev calls": 0, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 132, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 1188, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - } - }, - "ns": "test.bar", - "count": 100, - "size": 2600, - "storageSize": 16384, - "totalIndexSize": 16384, - "indexSizes": { - "_id_": 16384 - }, - "avgObjSize": 26.0, - "max": 10, - "maxSize": 10, - "nindexes": 1, - "nchunks": 1, - "shards": { - "shard01": { - "ns": "test.bar", - "size": 2600, - "count": 100, - "avgObjSize": 26, - "storageSize": 16384, - "capped": false, - "wiredTiger": { - "metadata": { - "formatVersion": 1 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=1),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=q,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=64MB,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=10m,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:collection-23-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 138, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 368, - "maximum internal page size": 4096, - "maximum leaf page key size": 2867, - "maximum leaf page size": 32768, - "maximum leaf page value size": 67108864, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 12806, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 3028, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 101, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 4096, - "compressed page maximum leaf page size prior to compression ": 131072, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 2 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 31, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 100, - "insert key and value bytes": 2737, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 1, - "prev calls": 1, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 94, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 0, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - }, - "nindexes": 1, - "indexDetails": { - "_id_": { - "metadata": { - "formatVersion": 8 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=8),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=16k,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=16k,leaf_value_max=0,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=true,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:index-24-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 138, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 1474, - "maximum internal page size": 16384, - "maximum leaf page key size": 1474, - "maximum leaf page size": 16384, - "maximum leaf page value size": 7372, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 12416, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 802, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 100, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 16384, - "compressed page maximum leaf page size prior to compression ": 16384, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 0 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 30, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 100, - "insert key and value bytes": 1600, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 0, - "prev calls": 0, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 132, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 1188, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - } - }, - "indexBuilds": [], - "totalIndexSize": 16384, - "indexSizes": { - "_id_": 16384 - }, - "scaleFactor": 1, - "ok": 1.0, - "$gleStats": { - "lastOpTime": { - "ts": { - "$timestamp": { - "t": 1600326602, - "i": 80 - } - }, - "t": 8 - }, - "electionId": { - "$oid": "7fffffff0000000000000008" - } - }, - "lastCommittedOpTime": { - "$timestamp": { - "t": 1600326734, - "i": 1 - } - }, - "$configServerState": { - "opTime": { - "ts": { - "$timestamp": { - "t": 1600326737, - "i": 1 - } - }, - "t": 14 - } - }, - "$clusterTime": { - "clusterTime": { - "$timestamp": { - "t": 1600326737, - "i": 1 - } - }, - "signature": { - "hash": { - "$binary": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "$type": "00" - }, - "keyId": 0 - } - }, - "operationTime": { - "$timestamp": { - "t": 1600326734, - "i": 1 - } - } - } - }, - "ok": 1.0, - "operationTime": { - "$timestamp": { - "t": 1600326734, - "i": 1 - } - }, - "$clusterTime": { - "clusterTime": { - "$timestamp": { - "t": 1600326737, - "i": 1 - } - }, - "signature": { - "hash": { - "$binary": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "$type": "00" - }, - "keyId": 0 - } - } -} \ No newline at end of file diff --git a/mongo/tests/fixtures/collstats-foo b/mongo/tests/fixtures/collstats-foo deleted file mode 100644 index 7fe42d3135522..0000000000000 --- a/mongo/tests/fixtures/collstats-foo +++ /dev/null @@ -1,810 +0,0 @@ -{ - "sharded": false, - "primary": "shard01", - "capped": false, - "wiredTiger": { - "metadata": { - "formatVersion": 1 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=1),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=q,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=64MB,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=10m,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:collection-21-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 139, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 368, - "maximum internal page size": 4096, - "maximum leaf page key size": 2867, - "maximum leaf page size": 32768, - "maximum leaf page value size": 67108864, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 26971, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 6538, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 213, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 4096, - "compressed page maximum leaf page size prior to compression ": 131072, - "compressed pages read": 0, - "compressed pages written": 1, - "page written failed to compress": 0, - "page written was too small to compress": 1 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 31, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 210, - "insert key and value bytes": 6027, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 3, - "prev calls": 1, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 96, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 0, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - }, - "indexDetails": { - "_id_": { - "metadata": { - "formatVersion": 8 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=8),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=16k,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=16k,leaf_value_max=0,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=true,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:index-22-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 139, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 1474, - "maximum internal page size": 16384, - "maximum leaf page key size": 1474, - "maximum leaf page size": 16384, - "maximum leaf page value size": 7372, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 24759, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 1573, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 210, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 16384, - "compressed page maximum leaf page size prior to compression ": 16384, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 0 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 30, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 210, - "insert key and value bytes": 3360, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 0, - "prev calls": 0, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 242, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 2507, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - } - }, - "ns": "test.foo", - "count": 210, - "size": 5670, - "storageSize": 16384, - "totalIndexSize": 16384, - "indexSizes": { - "_id_": 16384 - }, - "avgObjSize": 27.0, - "max": 10, - "maxSize": 10, - "nindexes": 1, - "nchunks": 1, - "shards": { - "shard01": { - "ns": "test.foo", - "size": 5670, - "count": 210, - "avgObjSize": 27, - "storageSize": 16384, - "capped": false, - "wiredTiger": { - "metadata": { - "formatVersion": 1 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=1),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=q,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=64MB,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=10m,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:collection-21-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 139, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 368, - "maximum internal page size": 4096, - "maximum leaf page key size": 2867, - "maximum leaf page size": 32768, - "maximum leaf page value size": 67108864, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 26971, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 6538, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 213, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 4096, - "compressed page maximum leaf page size prior to compression ": 131072, - "compressed pages read": 0, - "compressed pages written": 1, - "page written failed to compress": 0, - "page written was too small to compress": 1 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 31, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 210, - "insert key and value bytes": 6027, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 3, - "prev calls": 1, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 96, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 0, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - }, - "nindexes": 1, - "indexDetails": { - "_id_": { - "metadata": { - "formatVersion": 8 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=8),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=16k,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=16k,leaf_value_max=0,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=true,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:index-22-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 139, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 1474, - "maximum internal page size": 16384, - "maximum leaf page key size": 1474, - "maximum leaf page size": 16384, - "maximum leaf page value size": 7372, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 24759, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 1573, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 210, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 16384, - "compressed page maximum leaf page size prior to compression ": 16384, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 0 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 30, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 210, - "insert key and value bytes": 3360, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 0, - "prev calls": 0, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 242, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 2507, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - } - }, - "indexBuilds": [], - "totalIndexSize": 16384, - "indexSizes": { - "_id_": 16384 - }, - "scaleFactor": 1, - "ok": 1.0, - "$gleStats": { - "lastOpTime": { - "ts": { - "$timestamp": { - "t": 1600326602, - "i": 80 - } - }, - "t": 8 - }, - "electionId": { - "$oid": "7fffffff0000000000000008" - } - }, - "lastCommittedOpTime": { - "$timestamp": { - "t": 1600326804, - "i": 1 - } - }, - "$configServerState": { - "opTime": { - "ts": { - "$timestamp": { - "t": 1600326797, - "i": 1 - } - }, - "t": 14 - } - }, - "$clusterTime": { - "clusterTime": { - "$timestamp": { - "t": 1600326804, - "i": 1 - } - }, - "signature": { - "hash": { - "$binary": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "$type": "00" - }, - "keyId": 0 - } - }, - "operationTime": { - "$timestamp": { - "t": 1600326804, - "i": 1 - } - } - } - }, - "ok": 1.0, - "operationTime": { - "$timestamp": { - "t": 1600326804, - "i": 1 - } - }, - "$clusterTime": { - "clusterTime": { - "$timestamp": { - "t": 1600326804, - "i": 1 - } - }, - "signature": { - "hash": { - "$binary": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "$type": "00" - }, - "keyId": 0 - } - } -} \ No newline at end of file diff --git a/mongo/tests/fixtures/collstats-orders b/mongo/tests/fixtures/collstats-orders deleted file mode 100644 index 19cb97123482e..0000000000000 --- a/mongo/tests/fixtures/collstats-orders +++ /dev/null @@ -1,811 +0,0 @@ -{ - "sharded": false, - "primary": "shard01", - "capped": false, - "wiredTiger": { - "metadata": { - "formatVersion": 1 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=1),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=q,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=64MB,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=10m,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:collection-25-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 137, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 368, - "maximum internal page size": 4096, - "maximum leaf page key size": 2867, - "maximum leaf page size": 32768, - "maximum leaf page value size": 67108864, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 2124, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 553, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 6, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 4096, - "compressed page maximum leaf page size prior to compression ": 131072, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 2 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 4, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 6, - "insert key and value bytes": 444, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 0, - "prev calls": 1, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 13, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 0, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - }, - "indexDetails": { - "_id_": { - "metadata": { - "formatVersion": 8 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=8),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=16k,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=16k,leaf_value_max=0,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=true,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:index-26-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 137, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 1474, - "maximum internal page size": 16384, - "maximum leaf page key size": 1474, - "maximum leaf page size": 16384, - "maximum leaf page value size": 7372, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 1837, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 144, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 6, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 16384, - "compressed page maximum leaf page size prior to compression ": 16384, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 0 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 3, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 6, - "insert key and value bytes": 96, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 0, - "prev calls": 0, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 11, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 60, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - } - }, - "ns": "test.orders", - "count": 6, - "size": 438, - "capped": 42, - "max": 12, - "maxSize": 32, - "storageSize": 16384, - "totalIndexSize": 16384, - "indexSizes": { - "_id_": 16384 - }, - "avgObjSize": 73.0, - "nindexes": 1, - "nchunks": 1, - "shards": { - "shard01": { - "ns": "test.orders", - "size": 438, - "count": 6, - "avgObjSize": 73, - "storageSize": 16384, - "capped": false, - "wiredTiger": { - "metadata": { - "formatVersion": 1 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=1),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=q,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=64MB,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=10m,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:collection-25-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 137, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 368, - "maximum internal page size": 4096, - "maximum leaf page key size": 2867, - "maximum leaf page size": 32768, - "maximum leaf page value size": 67108864, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 2124, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 553, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 6, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 4096, - "compressed page maximum leaf page size prior to compression ": 131072, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 2 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 4, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 6, - "insert key and value bytes": 444, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 0, - "prev calls": 1, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 13, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 0, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - }, - "nindexes": 1, - "indexDetails": { - "_id_": { - "metadata": { - "formatVersion": 8 - }, - "creationString": "access_pattern_hint=none,allocation_size=4KB,app_metadata=(formatVersion=8),assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,name=),exclusive=false,extractor=,format=btree,huffman_key=,huffman_value=,ignore_in_memory_cache_size=false,immutable=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=16k,key_format=u,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=16k,leaf_value_max=0,log=(enabled=false),lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_custom=(prefix=,start_generation=0,suffix=),merge_max=15,merge_min=0),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=true,prefix_compression_min=4,source=,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,type=file,value_format=u", - "type": "file", - "uri": "statistics:table:index-26-7868540395916618471", - "LSM": { - "bloom filter false positives": 0, - "bloom filter hits": 0, - "bloom filter misses": 0, - "bloom filter pages evicted from cache": 0, - "bloom filter pages read into cache": 0, - "bloom filters in the LSM tree": 0, - "chunks in the LSM tree": 0, - "highest merge generation in the LSM tree": 0, - "queries that could have benefited from a Bloom filter that did not exist": 0, - "sleep for LSM checkpoint throttle": 0, - "sleep for LSM merge throttle": 0, - "total size of bloom filters": 0 - }, - "block-manager": { - "allocations requiring file extension": 3, - "blocks allocated": 3, - "blocks freed": 0, - "checkpoint size": 4096, - "file allocation unit size": 4096, - "file bytes available for reuse": 0, - "file magic number": 120897, - "file major version number": 1, - "file size in bytes": 16384, - "minor version number": 0 - }, - "btree": { - "btree checkpoint generation": 137, - "column-store fixed-size leaf pages": 0, - "column-store internal pages": 0, - "column-store variable-size RLE encoded values": 0, - "column-store variable-size deleted values": 0, - "column-store variable-size leaf pages": 0, - "fixed-record size": 0, - "maximum internal page key size": 1474, - "maximum internal page size": 16384, - "maximum leaf page key size": 1474, - "maximum leaf page size": 16384, - "maximum leaf page value size": 7372, - "maximum tree depth": 3, - "number of key/value pairs": 0, - "overflow pages": 0, - "pages rewritten by compaction": 0, - "row-store empty values": 0, - "row-store internal pages": 0, - "row-store leaf pages": 0 - }, - "cache": { - "bytes currently in the cache": 1837, - "bytes dirty in the cache cumulative": 942, - "bytes read into cache": 0, - "bytes written from cache": 144, - "checkpoint blocked page eviction": 0, - "data source pages selected for eviction unable to be evicted": 0, - "eviction walk passes of a file": 0, - "eviction walk target pages histogram - 0-9": 0, - "eviction walk target pages histogram - 10-31": 0, - "eviction walk target pages histogram - 128 and higher": 0, - "eviction walk target pages histogram - 32-63": 0, - "eviction walk target pages histogram - 64-128": 0, - "eviction walks abandoned": 0, - "eviction walks gave up because they restarted their walk twice": 0, - "eviction walks gave up because they saw too many pages and found no candidates": 0, - "eviction walks gave up because they saw too many pages and found too few candidates": 0, - "eviction walks reached end of tree": 0, - "eviction walks started from root of tree": 0, - "eviction walks started from saved location in tree": 0, - "hazard pointer blocked page eviction": 0, - "in-memory page passed criteria to be split": 0, - "in-memory page splits": 0, - "internal pages evicted": 0, - "internal pages split during eviction": 0, - "leaf pages split during eviction": 0, - "modified pages evicted": 0, - "overflow pages read into cache": 0, - "page split during eviction deepened the tree": 0, - "page written requiring cache overflow records": 0, - "pages read into cache": 0, - "pages read into cache after truncate": 1, - "pages read into cache after truncate in prepare state": 0, - "pages read into cache requiring cache overflow entries": 0, - "pages requested from the cache": 6, - "pages seen by eviction walk": 0, - "pages written from cache": 2, - "pages written requiring in-memory restoration": 0, - "tracked dirty bytes in the cache": 0, - "unmodified pages evicted": 0 - }, - "cache_walk": { - "Average difference between current eviction generation when the page was last considered": 0, - "Average on-disk page image size seen": 0, - "Average time in cache for pages that have been visited by the eviction server": 0, - "Average time in cache for pages that have not been visited by the eviction server": 0, - "Clean pages currently in cache": 0, - "Current eviction generation": 0, - "Dirty pages currently in cache": 0, - "Entries in the root page": 0, - "Internal pages currently in cache": 0, - "Leaf pages currently in cache": 0, - "Maximum difference between current eviction generation when the page was last considered": 0, - "Maximum page size seen": 0, - "Minimum on-disk page image size seen": 0, - "Number of pages never visited by eviction server": 0, - "On-disk page image sizes smaller than a single allocation unit": 0, - "Pages created in memory and never written": 0, - "Pages currently queued for eviction": 0, - "Pages that could not be queued for eviction": 0, - "Refs skipped during cache traversal": 0, - "Size of the root page": 0, - "Total number of pages currently in cache": 0 - }, - "compression": { - "compressed page maximum internal page size prior to compression": 16384, - "compressed page maximum leaf page size prior to compression ": 16384, - "compressed pages read": 0, - "compressed pages written": 0, - "page written failed to compress": 0, - "page written was too small to compress": 0 - }, - "cursor": { - "bulk loaded cursor insert calls": 0, - "cache cursors reuse count": 3, - "close calls that result in cache": 0, - "create calls": 2, - "insert calls": 6, - "insert key and value bytes": 96, - "modify": 0, - "modify key and value bytes affected": 0, - "modify value bytes modified": 0, - "next calls": 0, - "open cursor count": 0, - "operation restarted": 0, - "prev calls": 0, - "remove calls": 0, - "remove key bytes removed": 0, - "reserve calls": 0, - "reset calls": 11, - "search calls": 0, - "search near calls": 0, - "truncate calls": 0, - "update calls": 0, - "update key and value bytes": 0, - "update value size change": 0 - }, - "reconciliation": { - "dictionary matches": 0, - "fast-path pages deleted": 0, - "internal page key bytes discarded using suffix compression": 0, - "internal page multi-block writes": 0, - "internal-page overflow keys": 0, - "leaf page key bytes discarded using prefix compression": 60, - "leaf page multi-block writes": 0, - "leaf-page overflow keys": 0, - "maximum blocks required for a page": 1, - "overflow values written": 0, - "page checksum matches": 0, - "page reconciliation calls": 2, - "page reconciliation calls for eviction": 0, - "pages deleted": 0 - }, - "session": { - "object compaction": 0 - }, - "transaction": { - "update conflicts": 0 - } - } - }, - "indexBuilds": [], - "totalIndexSize": 16384, - "indexSizes": { - "_id_": 16384 - }, - "scaleFactor": 1, - "ok": 1.0, - "$gleStats": { - "lastOpTime": { - "ts": { - "$timestamp": { - "t": 1600326602, - "i": 80 - } - }, - "t": 8 - }, - "electionId": { - "$oid": "7fffffff0000000000000008" - } - }, - "lastCommittedOpTime": { - "$timestamp": { - "t": 1600326664, - "i": 1 - } - }, - "$configServerState": { - "opTime": { - "ts": { - "$timestamp": { - "t": 1600326667, - "i": 1 - } - }, - "t": 14 - } - }, - "$clusterTime": { - "clusterTime": { - "$timestamp": { - "t": 1600326667, - "i": 1 - } - }, - "signature": { - "hash": { - "$binary": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "$type": "00" - }, - "keyId": 0 - } - }, - "operationTime": { - "$timestamp": { - "t": 1600326664, - "i": 1 - } - } - } - }, - "ok": 1.0, - "operationTime": { - "$timestamp": { - "t": 1600326664, - "i": 1 - } - }, - "$clusterTime": { - "clusterTime": { - "$timestamp": { - "t": 1600326667, - "i": 1 - } - }, - "signature": { - "hash": { - "$binary": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "$type": "00" - }, - "keyId": 0 - } - } -} \ No newline at end of file diff --git a/mongo/tests/mocked_api.py b/mongo/tests/mocked_api.py index 280da967011e6..5dbfb6545a1de 100644 --- a/mongo/tests/mocked_api.py +++ b/mongo/tests/mocked_api.py @@ -35,9 +35,14 @@ def __init__(self, db_name, coll_name): with open(os.path.join(HERE, "fixtures", "system.replset"), 'r') as f: content = json.load(f, object_hook=json_util.object_hook) self.find_one = MagicMock(return_value=content) - else: - with open(os.path.join(HERE, "fixtures", f"indexStats-{coll_name}"), 'r') as f: - self.aggregate = MagicMock(return_value=json.load(f, object_hook=json_util.object_hook)) + + def aggregate(self, pipeline, session=None, **kwargs): + if '$indexStats' in pipeline[0]: + with open(os.path.join(HERE, "fixtures", f"$indexStats-{self._coll_name}"), 'r') as f: + return json.load(f, object_hook=json_util.object_hook) + elif '$collStats' in pipeline[0]: + with open(os.path.join(HERE, "fixtures", f"$collStats-{self._coll_name}"), 'r') as f: + return json.load(f, object_hook=json_util.object_hook) class MockedDB(object): diff --git a/mongo/tests/results/metrics-collection-autodiscover.json b/mongo/tests/results/metrics-collection-autodiscover.json index f13f8ef455b65..6316c25940c81 100644 --- a/mongo/tests/results/metrics-collection-autodiscover.json +++ b/mongo/tests/results/metrics-collection-autodiscover.json @@ -62,7 +62,7 @@ { "name": "mongodb.collection.capped", "type": 0, - "value": 0.0, + "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", "db:test", @@ -72,7 +72,7 @@ { "name": "mongodb.collection.capped", "type": 0, - "value": 0.0, + "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", "db:test", @@ -182,185 +182,223 @@ ] }, { - "name": "mongodb.collection.size", + "name": "mongodb.collection.totalindexsize", "type": 0, - "value": 5670.0, + "value": 16384.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:foo" ] }, { - "name": "mongodb.collection.size", + "name": "mongodb.collection.totalindexsize", "type": 0, - "value": 2600.0, + "value": 16384.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:bar" ] }, { - "name": "mongodb.collection.avgobjsize", + "name": "mongodb.collection.reads.latency", "type": 0, - "value": 27.0, + "value": 13165.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:foo" ] }, { - "name": "mongodb.collection.avgobjsize", + "name": "mongodb.collection.reads.latency", "type": 0, - "value": 26.0, + "value": 13165.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:bar" ] }, { - "name": "mongodb.collection.count", + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.writes.latency", "type": 0, - "value": 210.0, + "value": 8542.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:foo" ] }, { - "name": "mongodb.collection.count", + "name": "mongodb.collection.writes.latency", "type": 0, - "value": 100.0, + "value": 8542.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:bar" ] }, { - "name": "mongodb.collection.capped", + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.commands.latency", "type": 0, "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:foo" ] }, { - "name": "mongodb.collection.capped", + "name": "mongodb.collection.commands.latency", "type": 0, "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:bar" ] }, { - "name": "mongodb.collection.max", - "type": 0, - "value": 10.0, + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:foo" ] }, { - "name": "mongodb.collection.max", - "type": 0, - "value": 10.0, + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:bar" ] }, { - "name": "mongodb.collection.maxsize", + "name": "mongodb.collection.transactions.latency", "type": 0, - "value": 10.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:foo" ] }, { - "name": "mongodb.collection.maxsize", + "name": "mongodb.collection.transactions.latency", "type": 0, - "value": 10.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:bar" ] }, { - "name": "mongodb.collection.storagesize", - "type": 0, - "value": 16384.0, + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:foo" ] }, { - "name": "mongodb.collection.storagesize", - "type": 0, - "value": 16384.0, + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:bar" ] }, { - "name": "mongodb.collection.nindexes", + "name": "mongodb.collection.collectionscans.nontailable", "type": 0, - "value": 1.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:foo" ] }, { - "name": "mongodb.collection.nindexes", + "name": "mongodb.collection.collectionscans.nontailable", "type": 0, - "value": 1.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", + "db:test", "collection:bar" ] }, { - "name": "mongodb.collection.indexsizes", + "name": "mongodb.collection.collectionscans.total", "type": 0, - "value": 16384.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", - "collection:foo", - "index:_id_" + "db:test", + "collection:foo" ] }, { - "name": "mongodb.collection.indexsizes", + "name": "mongodb.collection.collectionscans.total", "type": 0, - "value": 16384.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:admin", - "collection:bar", - "index:_id_" + "db:test", + "collection:bar" ] }, { @@ -369,7 +407,7 @@ "value": 5670.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo" ] }, @@ -379,7 +417,7 @@ "value": 2600.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar" ] }, @@ -389,7 +427,7 @@ "value": 27.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo" ] }, @@ -399,7 +437,7 @@ "value": 26.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar" ] }, @@ -409,7 +447,7 @@ "value": 210.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo" ] }, @@ -419,27 +457,27 @@ "value": 100.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar" ] }, { "name": "mongodb.collection.capped", "type": 0, - "value": 0.0, + "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo" ] }, { "name": "mongodb.collection.capped", "type": 0, - "value": 0.0, + "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar" ] }, @@ -449,7 +487,7 @@ "value": 10.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo" ] }, @@ -459,7 +497,7 @@ "value": 10.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar" ] }, @@ -469,7 +507,7 @@ "value": 10.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo" ] }, @@ -479,7 +517,7 @@ "value": 10.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar" ] }, @@ -489,7 +527,7 @@ "value": 16384.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo" ] }, @@ -499,7 +537,7 @@ "value": 16384.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar" ] }, @@ -509,7 +547,7 @@ "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo" ] }, @@ -519,7 +557,7 @@ "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar" ] }, @@ -529,7 +567,7 @@ "value": 16384.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:foo", "index:_id_" ] @@ -540,179 +578,801 @@ "value": 16384.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:local", + "db:admin", "collection:bar", "index:_id_" ] }, { - "name": "mongodb.collection.size", + "name": "mongodb.collection.totalindexsize", "type": 0, - "value": 5670.0, + "value": 16384.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:foo" ] }, { - "name": "mongodb.collection.size", + "name": "mongodb.collection.totalindexsize", "type": 0, - "value": 2600.0, + "value": 16384.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:bar" ] }, { - "name": "mongodb.collection.avgobjsize", + "name": "mongodb.collection.reads.latency", "type": 0, - "value": 27.0, + "value": 13165.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:foo" ] }, { - "name": "mongodb.collection.avgobjsize", + "name": "mongodb.collection.reads.latency", "type": 0, - "value": 26.0, + "value": 13165.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:bar" ] }, { - "name": "mongodb.collection.count", - "type": 0, - "value": 210.0, + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:foo" ] }, { - "name": "mongodb.collection.count", - "type": 0, - "value": 100.0, + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:bar" ] }, { - "name": "mongodb.collection.capped", + "name": "mongodb.collection.writes.latency", "type": 0, - "value": 0.0, + "value": 8542.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:foo" ] }, { - "name": "mongodb.collection.capped", + "name": "mongodb.collection.writes.latency", "type": 0, - "value": 0.0, + "value": 8542.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:bar" ] }, { - "name": "mongodb.collection.max", - "type": 0, - "value": 10.0, + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:foo" ] }, { - "name": "mongodb.collection.max", - "type": 0, - "value": 10.0, + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:bar" ] }, { - "name": "mongodb.collection.maxsize", + "name": "mongodb.collection.commands.latency", "type": 0, - "value": 10.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:foo" ] }, { - "name": "mongodb.collection.maxsize", + "name": "mongodb.collection.commands.latency", "type": 0, - "value": 10.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:bar" ] }, { - "name": "mongodb.collection.storagesize", - "type": 0, - "value": 16384.0, + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:foo" ] }, { - "name": "mongodb.collection.storagesize", - "type": 0, - "value": 16384.0, + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:bar" ] }, { - "name": "mongodb.collection.nindexes", + "name": "mongodb.collection.transactions.latency", "type": 0, - "value": 1.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:foo" ] }, { - "name": "mongodb.collection.nindexes", + "name": "mongodb.collection.transactions.latency", "type": 0, - "value": 1.0, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", + "db:admin", "collection:bar" ] }, { - "name": "mongodb.collection.indexsizes", - "type": 0, - "value": 16384.0, + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", - "db:integration", - "collection:foo", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.collectionscans.nontailable", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.collectionscans.nontailable", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.collectionscans.total", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.collectionscans.total", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:admin", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 5670.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 2600.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 27.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 26.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 210.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 100.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar", + "index:_id_" + ] + }, + { + "name": "mongodb.collection.totalindexsize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.totalindexsize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.reads.latency", + "type": 0, + "value": 13165.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.reads.latency", + "type": 0, + "value": 13165.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.writes.latency", + "type": 0, + "value": 8542.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.writes.latency", + "type": 0, + "value": 8542.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.commands.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.commands.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.transactions.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.transactions.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.collectionscans.nontailable", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.collectionscans.nontailable", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.collectionscans.total", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.collectionscans.total", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:local", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 5670.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.size", + "type": 0, + "value": 2600.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 27.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.avgobjsize", + "type": 0, + "value": 26.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 210.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.count", + "type": 0, + "value": 100.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.capped", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.max", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.maxsize", + "type": 0, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.storagesize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.nindexes", + "type": 0, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.indexsizes", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo", "index:_id_" ] }, @@ -726,5 +1386,225 @@ "collection:bar", "index:_id_" ] + }, + { + "name": "mongodb.collection.totalindexsize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.totalindexsize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.reads.latency", + "type": 0, + "value": 13165.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.reads.latency", + "type": 0, + "value": 13165.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.writes.latency", + "type": 0, + "value": 8542.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.writes.latency", + "type": 0, + "value": 8542.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.commands.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.commands.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.transactions.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.transactions.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.collectionscans.nontailable", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.collectionscans.nontailable", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.collectionscans.total", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.collectionscans.total", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:integration", + "collection:bar" + ] } ] \ No newline at end of file diff --git a/mongo/tests/results/metrics-collection.json b/mongo/tests/results/metrics-collection.json index 4c22549fbaa8b..9f115118981f7 100644 --- a/mongo/tests/results/metrics-collection.json +++ b/mongo/tests/results/metrics-collection.json @@ -62,7 +62,7 @@ { "name": "mongodb.collection.capped", "type": 0, - "value": 0.0, + "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", "db:test", @@ -72,7 +72,7 @@ { "name": "mongodb.collection.capped", "type": 0, - "value": 0.0, + "value": 1.0, "tags": [ "server:mongodb://testUser2:*****@localhost:27017/test", "db:test", @@ -180,5 +180,225 @@ "collection:bar", "index:_id_" ] + }, + { + "name": "mongodb.collection.totalindexsize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.totalindexsize", + "type": 0, + "value": 16384.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.reads.latency", + "type": 0, + "value": 13165.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.reads.latency", + "type": 0, + "value": 13165.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.reads.opsps", + "type": 1, + "value": 10.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.writes.latency", + "type": 0, + "value": 8542.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.writes.latency", + "type": 0, + "value": 8542.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.writes.opsps", + "type": 1, + "value": 1.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.commands.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.commands.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.commands.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.transactions.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.transactions.latency", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.transactions.opsps", + "type": 1, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.collectionscans.nontailable", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.collectionscans.nontailable", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] + }, + { + "name": "mongodb.collection.collectionscans.total", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:foo" + ] + }, + { + "name": "mongodb.collection.collectionscans.total", + "type": 0, + "value": 0.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test", + "db:test", + "collection:bar" + ] } ] \ No newline at end of file From 91fad75e405cd21ea8b71760396d392e478f66bb Mon Sep 17 00:00:00 2001 From: HadhemiDD <43783545+HadhemiDD@users.noreply.github.com> Date: Thu, 4 Jul 2024 10:13:48 +0100 Subject: [PATCH 12/68] Add ssl path option when building the librdkafka dependency (#17957) * add the prefix path * commit * commit * commit * add debug * enable ssl * enable ssl in prefix folder * enable ssl in prefix folder * set default ssl path * set default ssl path * set default ssl path * set default ssl path * set default ssl path * linter * linter --- kafka_consumer/datadog_checks/kafka_consumer/config.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kafka_consumer/datadog_checks/kafka_consumer/config.py b/kafka_consumer/datadog_checks/kafka_consumer/config.py index c9bfe10bfd2dd..a82ffce56ffca 100644 --- a/kafka_consumer/datadog_checks/kafka_consumer/config.py +++ b/kafka_consumer/datadog_checks/kafka_consumer/config.py @@ -72,6 +72,13 @@ def __init__(self, init_config, instance, log) -> None: else: self._tls_verify = "true" if is_affirmative(instance.get("tls_verify", True)) else "false" + if ( + not self._tls_ca_cert + and os.name != 'nt' + and os.path.exists('/opt/datadog-agent/embedded/ssl/certs/cacert.pem') + ): + self._tls_ca_cert = '/opt/datadog-agent/embedded/ssl/certs/cacert.pem' + def validate_config(self): if not self._kafka_connect_str: raise ConfigurationError('`kafka_connect_str` is required') From ad164cb0c345628fc04c1611f807cb80a9450993 Mon Sep 17 00:00:00 2001 From: "agent-platform-auto-pr[bot]" <153269286+agent-platform-auto-pr[bot]@users.noreply.github.com> Date: Thu, 4 Jul 2024 12:18:21 +0200 Subject: [PATCH 13/68] Update dependency resolution (#17971) Co-authored-by: iliakur --- .deps/metadata.json | 2 +- .deps/resolved/linux-aarch64_py3.txt | 22 ++++++++--------- .deps/resolved/linux-x86_64_py3.txt | 22 ++++++++--------- .deps/resolved/macos-x86_64_py2.txt | 10 ++++---- .deps/resolved/macos-x86_64_py3.txt | 34 +++++++++++++-------------- .deps/resolved/windows-x86_64_py3.txt | 22 ++++++++--------- 6 files changed, 56 insertions(+), 56 deletions(-) diff --git a/.deps/metadata.json b/.deps/metadata.json index d75f6fb7495b1..22783e6498d00 100644 --- a/.deps/metadata.json +++ b/.deps/metadata.json @@ -1,3 +1,3 @@ { - "sha256": "c462074d8326bd125857a76b943d742addb6c65b0a637ed2b8118f890522c975" + "sha256": "e97a9f610322a516e6f4e9a3a6cd196e5393fd73982b5935fd59697157a30cce" } diff --git a/.deps/resolved/linux-aarch64_py3.txt b/.deps/resolved/linux-aarch64_py3.txt index c5bdc6a08f46d..28f712bdc36c4 100644 --- a/.deps/resolved/linux-aarch64_py3.txt +++ b/.deps/resolved/linux-aarch64_py3.txt @@ -9,8 +9,8 @@ bcrypt @ https://agent-int-packages.datadoghq.com/external/bcrypt/bcrypt-4.1.3-c beautifulsoup4 @ https://agent-int-packages.datadoghq.com/external/beautifulsoup4/beautifulsoup4-4.12.3-py3-none-any.whl#sha256=b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed binary @ https://agent-int-packages.datadoghq.com/external/binary/binary-1.0.0-py2.py3-none-any.whl#sha256=e1b61f3a5c002717d1a28e4d9d2dc8acbc9d6b12baf7b1e4ab25d743da97e323 boto @ https://agent-int-packages.datadoghq.com/external/boto/boto-2.49.0-py2.py3-none-any.whl#sha256=147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8 -boto3 @ https://agent-int-packages.datadoghq.com/external/boto3/boto3-1.34.131-py3-none-any.whl#sha256=05e388cb937e82be70bfd7eb0c84cf8011ff35cf582a593873ac21675268683b -botocore @ https://agent-int-packages.datadoghq.com/external/botocore/botocore-1.34.131-py3-none-any.whl#sha256=13b011d7b206ce00727dcee26548fa3b550db9046d5a0e90ac25a6e6c8fde6ef +boto3 @ https://agent-int-packages.datadoghq.com/external/boto3/boto3-1.34.136-py3-none-any.whl#sha256=d41037e2c680ab8d6c61a0a4ee6bf1fdd9e857f43996672830a95d62d6f6fa79 +botocore @ https://agent-int-packages.datadoghq.com/external/botocore/botocore-1.34.136-py3-none-any.whl#sha256=c63fe9032091fb9e9477706a3ebfa4d0c109b807907051d892ed574f9b573e61 bytecode @ https://agent-int-packages.datadoghq.com/external/bytecode/bytecode-0.15.1-py3-none-any.whl#sha256=0a1dc340cac823cff605609b8b214f7f9bf80418c6b9e0fc8c6db1793c27137d cachetools @ https://agent-int-packages.datadoghq.com/external/cachetools/cachetools-5.3.3-py3-none-any.whl#sha256=0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945 cattrs @ https://agent-int-packages.datadoghq.com/external/cattrs/cattrs-23.2.3-py3-none-any.whl#sha256=0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108 @@ -31,7 +31,7 @@ dogpile-cache @ https://agent-int-packages.datadoghq.com/external/dogpile-cache/ envier @ https://agent-int-packages.datadoghq.com/external/envier/envier-0.5.1-py3-none-any.whl#sha256=b45ef6051fea33d0c32a64e186bff2cfb446e2242d6781216c9bc9ce708c5909 filelock @ https://agent-int-packages.datadoghq.com/external/filelock/filelock-3.15.4-py3-none-any.whl#sha256=6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7 foundationdb @ https://agent-int-packages.datadoghq.com/built/foundationdb/foundationdb-6.3.24-20240402155019-py3-none-manylinux2014_aarch64.whl#sha256=14259f824080062cc890965747597ff00a9d6c76a1eb926673fed68a45860ccd -google-auth @ https://agent-int-packages.datadoghq.com/external/google-auth/google_auth-2.30.0-py2.py3-none-any.whl#sha256=8df7da660f62757388b8a7f249df13549b3373f24388cb5d2f1dd91cc18180b5 +google-auth @ https://agent-int-packages.datadoghq.com/external/google-auth/google_auth-2.31.0-py2.py3-none-any.whl#sha256=042c4702efa9f7d3c48d3a69341c209381b125faa6dbf3ebe56bc7e40ae05c23 gssapi @ https://agent-int-packages.datadoghq.com/built/gssapi/gssapi-1.8.3-20240614154505-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl#sha256=9cad48a1042db2552562b60e2f1e031564da58a2021accc5304b9d0f7e387680 idna @ https://agent-int-packages.datadoghq.com/external/idna/idna-3.7-py3-none-any.whl#sha256=82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 importlib-metadata @ https://agent-int-packages.datadoghq.com/external/importlib-metadata/importlib_metadata-7.1.0-py3-none-any.whl#sha256=30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 @@ -47,7 +47,7 @@ jsonschema @ https://agent-int-packages.datadoghq.com/external/jsonschema/jsonsc jsonschema-specifications @ https://agent-int-packages.datadoghq.com/external/jsonschema-specifications/jsonschema_specifications-2023.12.1-py3-none-any.whl#sha256=87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c keystoneauth1 @ https://agent-int-packages.datadoghq.com/external/keystoneauth1/keystoneauth1-5.6.0-py3-none-any.whl#sha256=d740843afcf9c159fb929004eee1eecf46573236901e9d8ca2dca5694733a379 krb5 @ https://agent-int-packages.datadoghq.com/built/krb5/krb5-0.5.1-20240614154505-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl#sha256=df0d516288d08e2936ce0883ca0d0c587b110b6f5831a4d5fede66cfe1e3cf22 -kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubernetes-28.1.0-py2.py3-none-any.whl#sha256=10f56f8160dcb73647f15fafda268e7f60cf7dbc9f8e46d52fcd46d3beb0c18d +kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubernetes-30.1.0-py2.py3-none-any.whl#sha256=e212e8b7579031dd2e512168b617373bc1e03888d41ac4e04039240a292d478d ldap3 @ https://agent-int-packages.datadoghq.com/external/ldap3/ldap3-2.9.1-py2.py3-none-any.whl#sha256=5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70 lxml @ https://agent-int-packages.datadoghq.com/external/lxml/lxml-4.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl#sha256=2a87fa548561d2f4643c99cd13131acb607ddabb70682dcf1dff5f71f781a4bf lz4 @ https://agent-int-packages.datadoghq.com/external/lz4/lz4-4.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=edfd858985c23523f4e5a7526ca6ee65ff930207a7ec8a8f57a01eae506aaee7 @@ -69,7 +69,7 @@ platformdirs @ https://agent-int-packages.datadoghq.com/external/platformdirs/pl ply @ https://agent-int-packages.datadoghq.com/external/ply/ply-3.11-py2.py3-none-any.whl#sha256=096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce portalocker @ https://agent-int-packages.datadoghq.com/external/portalocker/portalocker-2.10.0-py3-none-any.whl#sha256=48944147b2cd42520549bc1bb8fe44e220296e56f7c3d551bc6ecce69d9b0de1 prometheus-client @ https://agent-int-packages.datadoghq.com/external/prometheus-client/prometheus_client-0.20.0-py3-none-any.whl#sha256=cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7 -protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-5.27.1-cp38-abi3-manylinux2014_aarch64.whl#sha256=917ed03c3eb8a2d51c3496359f5b53b4e4b7e40edfbdd3d3f34336e0eef6825a +protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-5.27.2-cp38-abi3-manylinux2014_aarch64.whl#sha256=176c12b1f1c880bf7a76d9f7c75822b6a2bc3db2d28baa4d300e8ce4cde7409b psutil @ https://agent-int-packages.datadoghq.com/built/psutil/psutil-5.9.0-20240614154506-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl#sha256=0e11eb66313abd6d7a7ddb459e133e1a74c899ef66aa41c0b33abc7495947517 psycopg2-binary @ https://agent-int-packages.datadoghq.com/external/psycopg2-binary/psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=143072318f793f53819048fdfe30c321890af0c3ec7cb1dfc9cc87aa88241de2 pyasn1 @ https://agent-int-packages.datadoghq.com/external/pyasn1/pyasn1-0.4.6-py2.py3-none-any.whl#sha256=3bb81821d47b17146049e7574ab4bf1e315eb7aead30efe5d6a9ca422c9710be @@ -79,7 +79,7 @@ pycryptodomex @ https://agent-int-packages.datadoghq.com/external/pycryptodomex/ pydantic @ https://agent-int-packages.datadoghq.com/external/pydantic/pydantic-2.7.4-py3-none-any.whl#sha256=ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0 pydantic-core @ https://agent-int-packages.datadoghq.com/external/pydantic-core/pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=a642295cd0c8df1b86fc3dced1d067874c353a188dc8e0f744626d49e9aa51c4 pyjwt @ https://agent-int-packages.datadoghq.com/external/pyjwt/PyJWT-2.8.0-py3-none-any.whl#sha256=59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 -pymongo @ https://agent-int-packages.datadoghq.com/external/pymongo/pymongo-4.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=413506bd48d8c31ee100645192171e4773550d7cb940b594d5175ac29e329ea1 +pymongo @ https://agent-int-packages.datadoghq.com/external/pymongo/pymongo-4.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=bf821bd3befb993a6db17229a2c60c1550e957de02a6ff4dd0af9476637b2e4d pymysql @ https://agent-int-packages.datadoghq.com/external/pymysql/PyMySQL-1.1.1-py3-none-any.whl#sha256=4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c pynacl @ https://agent-int-packages.datadoghq.com/external/pynacl/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394 pyodbc @ https://agent-int-packages.datadoghq.com/built/pyodbc/pyodbc-5.1.0-20240614154506-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=dcffdf2c0522a298f8b6c8571682cfff196efdc754509b6c0d0316bda1ad5c7f @@ -93,16 +93,16 @@ python-binary-memcached @ https://agent-int-packages.datadoghq.com/external/pyth python-dateutil @ https://agent-int-packages.datadoghq.com/external/python-dateutil/python_dateutil-2.9.0.post0-py2.py3-none-any.whl#sha256=a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 python3-gearman @ https://agent-int-packages.datadoghq.com/external/python3-gearman/python3_gearman-0.1.0-py3-none-any.whl#sha256=4a5808d3a0bfc6c243548ad57e7aab4bee62c9cba2b1c3a860fdd292d46a112d pytz @ https://agent-int-packages.datadoghq.com/external/pytz/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 -pyvmomi @ https://agent-int-packages.datadoghq.com/built/pyvmomi/pyvmomi-8.0.2.0.1-20240402155024-py2.py3-none-manylinux2014_aarch64.whl#sha256=bf0945cb68300a7134c3c9a0c6530e5fdb684779667af0be90d83f9aa779dbe5 +pyvmomi @ https://agent-int-packages.datadoghq.com/built/pyvmomi/pyvmomi-8.0.3.0.1-20240702172038-py2.py3-none-manylinux2014_aarch64.whl#sha256=e173daf28895975b57850fef301837f24fba59dd8ff1d931795732e9be281d57 pyyaml @ https://agent-int-packages.datadoghq.com/external/pyyaml/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d -redis @ https://agent-int-packages.datadoghq.com/external/redis/redis-5.0.6-py3-none-any.whl#sha256=c0d6d990850c627bbf7be01c5c4cbaadf67b48593e913bb71c9819c30df37eee +redis @ https://agent-int-packages.datadoghq.com/external/redis/redis-5.0.7-py3-none-any.whl#sha256=0e479e24da960c690be5d9b96d21f7b918a98c0cf49af3b6fafaa0753f93a0db referencing @ https://agent-int-packages.datadoghq.com/external/referencing/referencing-0.35.1-py3-none-any.whl#sha256=eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de requests @ https://agent-int-packages.datadoghq.com/external/requests/requests-2.32.3-py3-none-any.whl#sha256=70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 requests-kerberos @ https://agent-int-packages.datadoghq.com/external/requests-kerberos/requests_kerberos-0.15.0-py2.py3-none-any.whl#sha256=ba9b0980b8489c93bfb13854fd118834e576d6700bfea3745cb2e62278cd16a6 requests-ntlm @ https://agent-int-packages.datadoghq.com/external/requests-ntlm/requests_ntlm-1.3.0-py3-none-any.whl#sha256=4c7534a7d0e482bb0928531d621be4b2c74ace437e88c5a357ceb7452d25a510 requests-oauthlib @ https://agent-int-packages.datadoghq.com/external/requests-oauthlib/requests_oauthlib-2.0.0-py2.py3-none-any.whl#sha256=7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36 requests-toolbelt @ https://agent-int-packages.datadoghq.com/external/requests-toolbelt/requests_toolbelt-1.0.0-py2.py3-none-any.whl#sha256=cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06 -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/external/requests-unixsocket2/requests_unixsocket2-0.4.0-py3-none-any.whl#sha256=8d3cafcc7b2feb18f85b0a5e37e4ff7b1a64777000ebd1a883df33012a07f16f +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/external/requests-unixsocket2/requests_unixsocket2-0.4.1-py3-none-any.whl#sha256=8dc532f1dd857458f0c80c27483c0f9b3016e518c27a47e5504a6f59b7931721 requestsexceptions @ https://agent-int-packages.datadoghq.com/external/requestsexceptions/requestsexceptions-1.4.0-py2.py3-none-any.whl#sha256=3083d872b6e07dc5c323563ef37671d992214ad9a32b0ca4a3d7f5500bf38ce3 rethinkdb @ https://agent-int-packages.datadoghq.com/external/rethinkdb/rethinkdb-2.4.9-py2.py3-none-any.whl#sha256=dd2455b3eab5266d8006eeefeb5eb970a3697dfe6aa18e1ab6e1d99233badfcb rpds-py @ https://agent-int-packages.datadoghq.com/external/rpds-py/rpds_py-0.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=154bf5c93d79558b44e5b50cc354aa0459e518e83677791e6adb0b039b7aa6a7 @@ -111,7 +111,7 @@ s3transfer @ https://agent-int-packages.datadoghq.com/external/s3transfer/s3tran securesystemslib @ https://agent-int-packages.datadoghq.com/external/securesystemslib/securesystemslib-0.28.0-py3-none-any.whl#sha256=9e6b9abe36a511d4f52c759069db8f6f650362ba82d6efc7bc7466a458b3f499 semver @ https://agent-int-packages.datadoghq.com/external/semver/semver-3.0.2-py3-none-any.whl#sha256=b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4 service-identity @ https://agent-int-packages.datadoghq.com/external/service-identity/service_identity-24.1.0-py3-none-any.whl#sha256=a28caf8130c8a5c1c7a6f5293faaf239bbfb7751e4862436920ee6f2616f568a -setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-70.1.1-py3-none-any.whl#sha256=a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95 +setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-70.2.0-py3-none-any.whl#sha256=b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05 simplejson @ https://agent-int-packages.datadoghq.com/external/simplejson/simplejson-3.19.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=ef7938a78447174e2616be223f496ddccdbf7854f7bf2ce716dbccd958cc7d13 six @ https://agent-int-packages.datadoghq.com/external/six/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 snowflake-connector-python @ https://agent-int-packages.datadoghq.com/external/snowflake-connector-python/snowflake_connector_python-3.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=aa48b1f2a124098745a33ee93e34d85a3dfb60fa3d2d7ec5efee4aa17bb05053 @@ -126,7 +126,7 @@ typing-extensions @ https://agent-int-packages.datadoghq.com/external/typing-ext tzlocal @ https://agent-int-packages.datadoghq.com/external/tzlocal/tzlocal-5.2-py3-none-any.whl#sha256=49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8 uhashring @ https://agent-int-packages.datadoghq.com/external/uhashring/uhashring-2.3-py3-none-any.whl#sha256=7ee8a25ca495a97effad10bd563c83b4054a6d7606d9530757049a04edab9297 uptime @ https://agent-int-packages.datadoghq.com/built/uptime/uptime-3.0.1-20240614154507-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl#sha256=9b29f6b5ee22f06e6e5d62a1901a16298cca119fddd91fcacb1f3f5325fa7bfc -urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-1.26.19-py2.py3-none-any.whl#sha256=37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3 +urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-2.2.2-py3-none-any.whl#sha256=a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472 vertica-python @ https://agent-int-packages.datadoghq.com/external/vertica-python/vertica_python-1.3.8-py3-none-any.whl#sha256=a52d05251b25adbadd8fc3d80d5a602f0982ad5e7e5fb84cb0ca26147419a0e8 websocket-client @ https://agent-int-packages.datadoghq.com/external/websocket-client/websocket_client-1.8.0-py3-none-any.whl#sha256=17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526 wrapt @ https://agent-int-packages.datadoghq.com/external/wrapt/wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389 diff --git a/.deps/resolved/linux-x86_64_py3.txt b/.deps/resolved/linux-x86_64_py3.txt index b35c19240e94b..6003d5a00002f 100644 --- a/.deps/resolved/linux-x86_64_py3.txt +++ b/.deps/resolved/linux-x86_64_py3.txt @@ -9,8 +9,8 @@ bcrypt @ https://agent-int-packages.datadoghq.com/external/bcrypt/bcrypt-4.1.3-c beautifulsoup4 @ https://agent-int-packages.datadoghq.com/external/beautifulsoup4/beautifulsoup4-4.12.3-py3-none-any.whl#sha256=b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed binary @ https://agent-int-packages.datadoghq.com/external/binary/binary-1.0.0-py2.py3-none-any.whl#sha256=e1b61f3a5c002717d1a28e4d9d2dc8acbc9d6b12baf7b1e4ab25d743da97e323 boto @ https://agent-int-packages.datadoghq.com/external/boto/boto-2.49.0-py2.py3-none-any.whl#sha256=147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8 -boto3 @ https://agent-int-packages.datadoghq.com/external/boto3/boto3-1.34.131-py3-none-any.whl#sha256=05e388cb937e82be70bfd7eb0c84cf8011ff35cf582a593873ac21675268683b -botocore @ https://agent-int-packages.datadoghq.com/external/botocore/botocore-1.34.131-py3-none-any.whl#sha256=13b011d7b206ce00727dcee26548fa3b550db9046d5a0e90ac25a6e6c8fde6ef +boto3 @ https://agent-int-packages.datadoghq.com/external/boto3/boto3-1.34.136-py3-none-any.whl#sha256=d41037e2c680ab8d6c61a0a4ee6bf1fdd9e857f43996672830a95d62d6f6fa79 +botocore @ https://agent-int-packages.datadoghq.com/external/botocore/botocore-1.34.136-py3-none-any.whl#sha256=c63fe9032091fb9e9477706a3ebfa4d0c109b807907051d892ed574f9b573e61 bytecode @ https://agent-int-packages.datadoghq.com/external/bytecode/bytecode-0.15.1-py3-none-any.whl#sha256=0a1dc340cac823cff605609b8b214f7f9bf80418c6b9e0fc8c6db1793c27137d cachetools @ https://agent-int-packages.datadoghq.com/external/cachetools/cachetools-5.3.3-py3-none-any.whl#sha256=0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945 cattrs @ https://agent-int-packages.datadoghq.com/external/cattrs/cattrs-23.2.3-py3-none-any.whl#sha256=0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108 @@ -31,7 +31,7 @@ dogpile-cache @ https://agent-int-packages.datadoghq.com/external/dogpile-cache/ envier @ https://agent-int-packages.datadoghq.com/external/envier/envier-0.5.1-py3-none-any.whl#sha256=b45ef6051fea33d0c32a64e186bff2cfb446e2242d6781216c9bc9ce708c5909 filelock @ https://agent-int-packages.datadoghq.com/external/filelock/filelock-3.15.4-py3-none-any.whl#sha256=6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7 foundationdb @ https://agent-int-packages.datadoghq.com/built/foundationdb/foundationdb-6.3.24-20240402154840-py3-none-manylinux2014_x86_64.whl#sha256=14259f824080062cc890965747597ff00a9d6c76a1eb926673fed68a45860ccd -google-auth @ https://agent-int-packages.datadoghq.com/external/google-auth/google_auth-2.30.0-py2.py3-none-any.whl#sha256=8df7da660f62757388b8a7f249df13549b3373f24388cb5d2f1dd91cc18180b5 +google-auth @ https://agent-int-packages.datadoghq.com/external/google-auth/google_auth-2.31.0-py2.py3-none-any.whl#sha256=042c4702efa9f7d3c48d3a69341c209381b125faa6dbf3ebe56bc7e40ae05c23 gssapi @ https://agent-int-packages.datadoghq.com/built/gssapi/gssapi-1.8.3-20240625090646-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl#sha256=4f217a909af4ad1e58644db6d4770ade4b20b729e65230c624df043e3c6fd7cd idna @ https://agent-int-packages.datadoghq.com/external/idna/idna-3.7-py3-none-any.whl#sha256=82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 importlib-metadata @ https://agent-int-packages.datadoghq.com/external/importlib-metadata/importlib_metadata-7.1.0-py3-none-any.whl#sha256=30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 @@ -47,7 +47,7 @@ jsonschema @ https://agent-int-packages.datadoghq.com/external/jsonschema/jsonsc jsonschema-specifications @ https://agent-int-packages.datadoghq.com/external/jsonschema-specifications/jsonschema_specifications-2023.12.1-py3-none-any.whl#sha256=87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c keystoneauth1 @ https://agent-int-packages.datadoghq.com/external/keystoneauth1/keystoneauth1-5.6.0-py3-none-any.whl#sha256=d740843afcf9c159fb929004eee1eecf46573236901e9d8ca2dca5694733a379 krb5 @ https://agent-int-packages.datadoghq.com/built/krb5/krb5-0.5.1-20240625090647-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl#sha256=37baab909fe0e1419498d26199ae8a1c7aa08422b51307c4056f5d7eaeb4e790 -kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubernetes-28.1.0-py2.py3-none-any.whl#sha256=10f56f8160dcb73647f15fafda268e7f60cf7dbc9f8e46d52fcd46d3beb0c18d +kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubernetes-30.1.0-py2.py3-none-any.whl#sha256=e212e8b7579031dd2e512168b617373bc1e03888d41ac4e04039240a292d478d ldap3 @ https://agent-int-packages.datadoghq.com/external/ldap3/ldap3-2.9.1-py2.py3-none-any.whl#sha256=5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70 lxml @ https://agent-int-packages.datadoghq.com/external/lxml/lxml-4.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl#sha256=d6b430a9938a5a5d85fc107d852262ddcd48602c120e3dbb02137c83d212b380 lz4 @ https://agent-int-packages.datadoghq.com/external/lz4/lz4-4.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=0e9c410b11a31dbdc94c05ac3c480cb4b222460faf9231f12538d0074e56c563 @@ -69,7 +69,7 @@ platformdirs @ https://agent-int-packages.datadoghq.com/external/platformdirs/pl ply @ https://agent-int-packages.datadoghq.com/external/ply/ply-3.11-py2.py3-none-any.whl#sha256=096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce portalocker @ https://agent-int-packages.datadoghq.com/external/portalocker/portalocker-2.10.0-py3-none-any.whl#sha256=48944147b2cd42520549bc1bb8fe44e220296e56f7c3d551bc6ecce69d9b0de1 prometheus-client @ https://agent-int-packages.datadoghq.com/external/prometheus-client/prometheus_client-0.20.0-py3-none-any.whl#sha256=cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7 -protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-5.27.1-cp38-abi3-manylinux2014_x86_64.whl#sha256=ee52874a9e69a30271649be88ecbe69d374232e8fd0b4e4b0aaaa87f429f1631 +protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-5.27.2-cp38-abi3-manylinux2014_x86_64.whl#sha256=b848dbe1d57ed7c191dfc4ea64b8b004a3f9ece4bf4d0d80a367b76df20bf36e psutil @ https://agent-int-packages.datadoghq.com/built/psutil/psutil-5.9.0-20240625090647-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl#sha256=41c13f5d8e4aecb22e5e11ea3bec7fa31f8dbd6c0d169c1ab5cb6a820b13e7fb psycopg2-binary @ https://agent-int-packages.datadoghq.com/external/psycopg2-binary/psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=977646e05232579d2e7b9c59e21dbe5261f403a88417f6a6512e70d3f8a046be pyasn1 @ https://agent-int-packages.datadoghq.com/external/pyasn1/pyasn1-0.4.6-py2.py3-none-any.whl#sha256=3bb81821d47b17146049e7574ab4bf1e315eb7aead30efe5d6a9ca422c9710be @@ -79,7 +79,7 @@ pycryptodomex @ https://agent-int-packages.datadoghq.com/external/pycryptodomex/ pydantic @ https://agent-int-packages.datadoghq.com/external/pydantic/pydantic-2.7.4-py3-none-any.whl#sha256=ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0 pydantic-core @ https://agent-int-packages.datadoghq.com/external/pydantic-core/pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=0fbbdc827fe5e42e4d196c746b890b3d72876bdbf160b0eafe9f0334525119c8 pyjwt @ https://agent-int-packages.datadoghq.com/external/pyjwt/PyJWT-2.8.0-py3-none-any.whl#sha256=59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 -pymongo @ https://agent-int-packages.datadoghq.com/external/pymongo/pymongo-4.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=89872041196c008caddf905eb59d3dc2d292ae6b0282f1138418e76f3abd3ad6 +pymongo @ https://agent-int-packages.datadoghq.com/external/pymongo/pymongo-4.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=16e5019f75f6827bb5354b6fef8dfc9d6c7446894a27346e03134d290eb9e758 pymqi @ https://agent-int-packages.datadoghq.com/built/pymqi/pymqi-1.12.10-20240625090648-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl#sha256=50c6c47855fc6c29f7e322902e82a82a6736bf23179c1297ddcd636b7a2e8cc7 pymysql @ https://agent-int-packages.datadoghq.com/external/pymysql/PyMySQL-1.1.1-py3-none-any.whl#sha256=4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c pynacl @ https://agent-int-packages.datadoghq.com/external/pynacl/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858 @@ -94,16 +94,16 @@ python-binary-memcached @ https://agent-int-packages.datadoghq.com/external/pyth python-dateutil @ https://agent-int-packages.datadoghq.com/external/python-dateutil/python_dateutil-2.9.0.post0-py2.py3-none-any.whl#sha256=a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 python3-gearman @ https://agent-int-packages.datadoghq.com/external/python3-gearman/python3_gearman-0.1.0-py3-none-any.whl#sha256=4a5808d3a0bfc6c243548ad57e7aab4bee62c9cba2b1c3a860fdd292d46a112d pytz @ https://agent-int-packages.datadoghq.com/external/pytz/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 -pyvmomi @ https://agent-int-packages.datadoghq.com/built/pyvmomi/pyvmomi-8.0.2.0.1-20240402154844-py2.py3-none-manylinux2014_x86_64.whl#sha256=bf0945cb68300a7134c3c9a0c6530e5fdb684779667af0be90d83f9aa779dbe5 +pyvmomi @ https://agent-int-packages.datadoghq.com/built/pyvmomi/pyvmomi-8.0.3.0.1-20240702172050-py2.py3-none-manylinux2014_x86_64.whl#sha256=e173daf28895975b57850fef301837f24fba59dd8ff1d931795732e9be281d57 pyyaml @ https://agent-int-packages.datadoghq.com/external/pyyaml/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 -redis @ https://agent-int-packages.datadoghq.com/external/redis/redis-5.0.6-py3-none-any.whl#sha256=c0d6d990850c627bbf7be01c5c4cbaadf67b48593e913bb71c9819c30df37eee +redis @ https://agent-int-packages.datadoghq.com/external/redis/redis-5.0.7-py3-none-any.whl#sha256=0e479e24da960c690be5d9b96d21f7b918a98c0cf49af3b6fafaa0753f93a0db referencing @ https://agent-int-packages.datadoghq.com/external/referencing/referencing-0.35.1-py3-none-any.whl#sha256=eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de requests @ https://agent-int-packages.datadoghq.com/external/requests/requests-2.32.3-py3-none-any.whl#sha256=70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 requests-kerberos @ https://agent-int-packages.datadoghq.com/external/requests-kerberos/requests_kerberos-0.15.0-py2.py3-none-any.whl#sha256=ba9b0980b8489c93bfb13854fd118834e576d6700bfea3745cb2e62278cd16a6 requests-ntlm @ https://agent-int-packages.datadoghq.com/external/requests-ntlm/requests_ntlm-1.3.0-py3-none-any.whl#sha256=4c7534a7d0e482bb0928531d621be4b2c74ace437e88c5a357ceb7452d25a510 requests-oauthlib @ https://agent-int-packages.datadoghq.com/external/requests-oauthlib/requests_oauthlib-2.0.0-py2.py3-none-any.whl#sha256=7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36 requests-toolbelt @ https://agent-int-packages.datadoghq.com/external/requests-toolbelt/requests_toolbelt-1.0.0-py2.py3-none-any.whl#sha256=cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06 -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/external/requests-unixsocket2/requests_unixsocket2-0.4.0-py3-none-any.whl#sha256=8d3cafcc7b2feb18f85b0a5e37e4ff7b1a64777000ebd1a883df33012a07f16f +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/external/requests-unixsocket2/requests_unixsocket2-0.4.1-py3-none-any.whl#sha256=8dc532f1dd857458f0c80c27483c0f9b3016e518c27a47e5504a6f59b7931721 requestsexceptions @ https://agent-int-packages.datadoghq.com/external/requestsexceptions/requestsexceptions-1.4.0-py2.py3-none-any.whl#sha256=3083d872b6e07dc5c323563ef37671d992214ad9a32b0ca4a3d7f5500bf38ce3 rethinkdb @ https://agent-int-packages.datadoghq.com/external/rethinkdb/rethinkdb-2.4.9-py2.py3-none-any.whl#sha256=dd2455b3eab5266d8006eeefeb5eb970a3697dfe6aa18e1ab6e1d99233badfcb rpds-py @ https://agent-int-packages.datadoghq.com/external/rpds-py/rpds_py-0.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=3c20f05e8e3d4fc76875fc9cb8cf24b90a63f5a1b4c5b9273f0e8225e169b100 @@ -112,7 +112,7 @@ s3transfer @ https://agent-int-packages.datadoghq.com/external/s3transfer/s3tran securesystemslib @ https://agent-int-packages.datadoghq.com/external/securesystemslib/securesystemslib-0.28.0-py3-none-any.whl#sha256=9e6b9abe36a511d4f52c759069db8f6f650362ba82d6efc7bc7466a458b3f499 semver @ https://agent-int-packages.datadoghq.com/external/semver/semver-3.0.2-py3-none-any.whl#sha256=b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4 service-identity @ https://agent-int-packages.datadoghq.com/external/service-identity/service_identity-24.1.0-py3-none-any.whl#sha256=a28caf8130c8a5c1c7a6f5293faaf239bbfb7751e4862436920ee6f2616f568a -setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-70.1.1-py3-none-any.whl#sha256=a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95 +setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-70.2.0-py3-none-any.whl#sha256=b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05 simplejson @ https://agent-int-packages.datadoghq.com/external/simplejson/simplejson-3.19.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=4d36081c0b1c12ea0ed62c202046dca11438bee48dd5240b7c8de8da62c620e9 six @ https://agent-int-packages.datadoghq.com/external/six/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 snowflake-connector-python @ https://agent-int-packages.datadoghq.com/external/snowflake-connector-python/snowflake_connector_python-3.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=96b21a062fc7aacb49202c8502239c0728319a96834a9fca1b6666a51e515dcc @@ -127,7 +127,7 @@ typing-extensions @ https://agent-int-packages.datadoghq.com/external/typing-ext tzlocal @ https://agent-int-packages.datadoghq.com/external/tzlocal/tzlocal-5.2-py3-none-any.whl#sha256=49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8 uhashring @ https://agent-int-packages.datadoghq.com/external/uhashring/uhashring-2.3-py3-none-any.whl#sha256=7ee8a25ca495a97effad10bd563c83b4054a6d7606d9530757049a04edab9297 uptime @ https://agent-int-packages.datadoghq.com/built/uptime/uptime-3.0.1-20240625090648-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl#sha256=18df6d6c66121064f4504e040fc9de80a2b577541be52d564a532593f069e80e -urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-1.26.19-py2.py3-none-any.whl#sha256=37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3 +urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-2.2.2-py3-none-any.whl#sha256=a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472 vertica-python @ https://agent-int-packages.datadoghq.com/external/vertica-python/vertica_python-1.3.8-py3-none-any.whl#sha256=a52d05251b25adbadd8fc3d80d5a602f0982ad5e7e5fb84cb0ca26147419a0e8 websocket-client @ https://agent-int-packages.datadoghq.com/external/websocket-client/websocket_client-1.8.0-py3-none-any.whl#sha256=17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526 wrapt @ https://agent-int-packages.datadoghq.com/external/wrapt/wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1 diff --git a/.deps/resolved/macos-x86_64_py2.txt b/.deps/resolved/macos-x86_64_py2.txt index e5df4f45528c9..dbf7d559f0078 100644 --- a/.deps/resolved/macos-x86_64_py2.txt +++ b/.deps/resolved/macos-x86_64_py2.txt @@ -33,7 +33,7 @@ kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubern ldap3 @ https://agent-int-packages.datadoghq.com/external/ldap3/ldap3-2.9.1-py2.py3-none-any.whl#sha256=5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70 lxml @ https://agent-int-packages.datadoghq.com/external/lxml/lxml-4.9.2-cp27-cp27m-macosx_10_15_x86_64.whl#sha256=76cf573e5a365e790396a5cc2b909812633409306c6531a6877c59061e42c4f2 lz4 @ https://agent-int-packages.datadoghq.com/external/lz4/lz4-2.2.1-cp27-cp27m-macosx_10_6_intel.whl#sha256=b81ad552da981d21679eb32fa9c601ae22cf3b154221c601d8131c18e2d5921d -mmh3 @ https://agent-int-packages.datadoghq.com/built/mmh3/mmh3-2.5.1-20240628191705-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=5c6ffbc1e8fa991e58f68dc6448413b002c6d5cbf2ee8dfdbf4e8e6338d9ba9c +mmh3 @ https://agent-int-packages.datadoghq.com/built/mmh3/mmh3-2.5.1-20240702172106-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=b60948a8393af74abb44231c52c07efc58933388a7ae6039af0e75d5a135e8f5 monotonic @ https://agent-int-packages.datadoghq.com/external/monotonic/monotonic-1.6-py2.py3-none-any.whl#sha256=68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c ntlm-auth @ https://agent-int-packages.datadoghq.com/external/ntlm-auth/ntlm_auth-1.5.0-py2.py3-none-any.whl#sha256=f1527c581dbf149349134fc2d789d50af2a400e193206956fa0ab456ccc5a8ba oauthlib @ https://agent-int-packages.datadoghq.com/external/oauthlib/oauthlib-3.1.0-py2.py3-none-any.whl#sha256=df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea @@ -44,13 +44,13 @@ pep562 @ https://agent-int-packages.datadoghq.com/external/pep562/pep562-1.1-py2 ply @ https://agent-int-packages.datadoghq.com/external/ply/ply-3.11-py2.py3-none-any.whl#sha256=096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce prometheus-client @ https://agent-int-packages.datadoghq.com/external/prometheus-client/prometheus_client-0.12.0-py2.py3-none-any.whl#sha256=317453ebabff0a1b02df7f708efbab21e3489e7072b61cb6957230dd004a0af0 protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-3.17.3-py2.py3-none-any.whl#sha256=2bfb815216a9cd9faec52b16fd2bfa68437a44b67c56bee59bc3926522ecb04e -psutil @ https://agent-int-packages.datadoghq.com/built/psutil/psutil-5.9.0-20240628191705-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=e8e0eceeb3bce0e5dc74108ff3a4399dbbd111a4fe690a3dd0235358bd59737b +psutil @ https://agent-int-packages.datadoghq.com/built/psutil/psutil-5.9.0-20240702172106-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=d8bffb5816b7e47a155d34d7e6e7c5503d735b8fb5caa267327657c29ee40a9f pyasn1 @ https://agent-int-packages.datadoghq.com/external/pyasn1/pyasn1-0.4.6-py2.py3-none-any.whl#sha256=3bb81821d47b17146049e7574ab4bf1e315eb7aead30efe5d6a9ca422c9710be pyasn1-modules @ https://agent-int-packages.datadoghq.com/external/pyasn1-modules/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d pycparser @ https://agent-int-packages.datadoghq.com/external/pycparser/pycparser-2.21-py2.py3-none-any.whl#sha256=8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 pycryptodomex @ https://agent-int-packages.datadoghq.com/external/pycryptodomex/pycryptodomex-3.20.0-cp27-cp27m-macosx_10_9_x86_64.whl#sha256=645bd4ca6f543685d643dadf6a856cc382b654cc923460e3a10a49c1b3832aeb pyjwt @ https://agent-int-packages.datadoghq.com/external/pyjwt/PyJWT-1.7.1-py2.py3-none-any.whl#sha256=5c6eca3c2940464d106b99ba83b00c6add741c9becaec087fb7ccdefea71350e -pykerberos @ https://agent-int-packages.datadoghq.com/built/pykerberos/pykerberos-1.2.4-20240628191705-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=3ab67c052922f1630c9a3a65dac7bc59c8b5b0d728cffe990a5a411d9d7db7c4 +pykerberos @ https://agent-int-packages.datadoghq.com/built/pykerberos/pykerberos-1.2.4-20240702172106-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=83d3e0484304ae3f080d1e102db38b4902e89d72890a30b36126bd87748e14c2 pymysql @ https://agent-int-packages.datadoghq.com/external/pymysql/PyMySQL-0.10.1-py2.py3-none-any.whl#sha256=44f47128dda8676e021c8d2dbb49a82be9e4ab158b9f03e897152a3a287c69ea pynacl @ https://agent-int-packages.datadoghq.com/external/pynacl/PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl#sha256=ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff pyparsing @ https://agent-int-packages.datadoghq.com/external/pyparsing/pyparsing-2.4.7-py2.py3-none-any.whl#sha256=ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b @@ -73,7 +73,7 @@ requests-unixsocket @ https://agent-int-packages.datadoghq.com/external/requests rethinkdb @ https://agent-int-packages.datadoghq.com/external/rethinkdb/rethinkdb-2.4.9-py2.py3-none-any.whl#sha256=dd2455b3eab5266d8006eeefeb5eb970a3697dfe6aa18e1ab6e1d99233badfcb rsa @ https://agent-int-packages.datadoghq.com/external/rsa/rsa-4.5-py2.py3-none-any.whl#sha256=35c5b5f6675ac02120036d97cf96f1fde4d49670543db2822ba5015e21a18032 s3transfer @ https://agent-int-packages.datadoghq.com/external/s3transfer/s3transfer-0.4.2-py2.py3-none-any.whl#sha256=9b3752887a2880690ce628bc263d6d13a3864083aeacff4890c1c9839a5eb0bc -scandir @ https://agent-int-packages.datadoghq.com/built/scandir/scandir-1.10.0-20240628191706-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=ad0354d9eb9fbfb2d1562586122c346e2b93b9acd85a406f879c97b1eb8bc565 +scandir @ https://agent-int-packages.datadoghq.com/built/scandir/scandir-1.10.0-20240702172107-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=c0d207940c7113ddb49cd55eafd68b27f671a256c6cda91bd97e0f8b5beef77a semver @ https://agent-int-packages.datadoghq.com/external/semver/semver-2.13.0-py2.py3-none-any.whl#sha256=ced8b23dceb22134307c1b8abfa523da14198793d9787ac838e70e29e77458d4 service-identity @ https://agent-int-packages.datadoghq.com/external/service-identity/service_identity-21.1.0-py2.py3-none-any.whl#sha256=f0b0caac3d40627c3c04d7a51b6e06721857a0e10a8775f2d1d7e72901b3a7db setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-44.1.1-py2.py3-none-any.whl#sha256=27a714c09253134e60a6fa68130f78c7037e5562c4f21f8f318f2ae900d152d5 @@ -84,7 +84,7 @@ supervisor @ https://agent-int-packages.datadoghq.com/external/supervisor/superv tenacity @ https://agent-int-packages.datadoghq.com/external/tenacity/tenacity-7.0.0-py2.py3-none-any.whl#sha256=a0ce48587271515db7d3a5e700df9ae69cce98c4b57c23a4886da15243603dd8 typing @ https://agent-int-packages.datadoghq.com/external/typing/typing-3.10.0.0-py2-none-any.whl#sha256=c7219ef20c5fbf413b4567092adfc46fa6203cb8454eda33c3fc1afe1398a308 tzlocal @ https://agent-int-packages.datadoghq.com/external/tzlocal/tzlocal-2.1-py2.py3-none-any.whl#sha256=e2cb6c6b5b604af38597403e9852872d7f534962ae2954c7f35efcb1ccacf4a4 -uptime @ https://agent-int-packages.datadoghq.com/built/uptime/uptime-3.0.1-20240628191706-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=b903ea21a1cfafe9770c0580d78a994043eba28fe0e769dda2ead39bbb61febe +uptime @ https://agent-int-packages.datadoghq.com/built/uptime/uptime-3.0.1-20240702172107-cp27-cp27m-macosx_10_12_x86_64.whl#sha256=1672d6e996ac1b879f03d5209ec99fde232709f55a3f0597de981b1e81493b79 urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-1.26.19-py2.py3-none-any.whl#sha256=37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3 vertica-python @ https://agent-int-packages.datadoghq.com/external/vertica-python/vertica_python-1.2.0-py2.py3-none-any.whl#sha256=4c6bc271e871e4935874cc4556832ff9a2330894e2e9516eddd6a7344b9f514b websocket-client @ https://agent-int-packages.datadoghq.com/external/websocket-client/websocket_client-0.59.0-py2.py3-none-any.whl#sha256=2e50d26ca593f70aba7b13a489435ef88b8fc3b5c5643c1ce8808ff9b40f0b32 diff --git a/.deps/resolved/macos-x86_64_py3.txt b/.deps/resolved/macos-x86_64_py3.txt index 47c34bf47ebbc..4acf3db42a9ae 100644 --- a/.deps/resolved/macos-x86_64_py3.txt +++ b/.deps/resolved/macos-x86_64_py3.txt @@ -8,8 +8,8 @@ bcrypt @ https://agent-int-packages.datadoghq.com/external/bcrypt/bcrypt-4.1.3-c beautifulsoup4 @ https://agent-int-packages.datadoghq.com/external/beautifulsoup4/beautifulsoup4-4.12.3-py3-none-any.whl#sha256=b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed binary @ https://agent-int-packages.datadoghq.com/external/binary/binary-1.0.0-py2.py3-none-any.whl#sha256=e1b61f3a5c002717d1a28e4d9d2dc8acbc9d6b12baf7b1e4ab25d743da97e323 boto @ https://agent-int-packages.datadoghq.com/external/boto/boto-2.49.0-py2.py3-none-any.whl#sha256=147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8 -boto3 @ https://agent-int-packages.datadoghq.com/external/boto3/boto3-1.34.131-py3-none-any.whl#sha256=05e388cb937e82be70bfd7eb0c84cf8011ff35cf582a593873ac21675268683b -botocore @ https://agent-int-packages.datadoghq.com/external/botocore/botocore-1.34.131-py3-none-any.whl#sha256=13b011d7b206ce00727dcee26548fa3b550db9046d5a0e90ac25a6e6c8fde6ef +boto3 @ https://agent-int-packages.datadoghq.com/external/boto3/boto3-1.34.136-py3-none-any.whl#sha256=d41037e2c680ab8d6c61a0a4ee6bf1fdd9e857f43996672830a95d62d6f6fa79 +botocore @ https://agent-int-packages.datadoghq.com/external/botocore/botocore-1.34.136-py3-none-any.whl#sha256=c63fe9032091fb9e9477706a3ebfa4d0c109b807907051d892ed574f9b573e61 bytecode @ https://agent-int-packages.datadoghq.com/external/bytecode/bytecode-0.15.1-py3-none-any.whl#sha256=0a1dc340cac823cff605609b8b214f7f9bf80418c6b9e0fc8c6db1793c27137d cachetools @ https://agent-int-packages.datadoghq.com/external/cachetools/cachetools-5.3.3-py3-none-any.whl#sha256=0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945 cattrs @ https://agent-int-packages.datadoghq.com/external/cattrs/cattrs-23.2.3-py3-none-any.whl#sha256=0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108 @@ -19,7 +19,7 @@ charset-normalizer @ https://agent-int-packages.datadoghq.com/external/charset-n clickhouse-cityhash @ https://agent-int-packages.datadoghq.com/external/clickhouse-cityhash/clickhouse_cityhash-1.0.2.4-cp311-cp311-macosx_10_9_x86_64.whl#sha256=bb3401bb08d0e27166faac7ff277ff3482e096d0455152a6b7c38b3a632a007b clickhouse-driver @ https://agent-int-packages.datadoghq.com/external/clickhouse-driver/clickhouse_driver-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8e06ef6bb701c8e42a9c686d77ad30805cf431bb79fa8fe0f4d3dee819e9a12c cm-client @ https://agent-int-packages.datadoghq.com/built/cm-client/cm_client-45.0.4-20240402154932-py3-none-macosx_10_12_universal2.whl#sha256=aba3c1683ef1b2099933e030464d29b3ad1c206784ebd15d8a7147ecd6ba24e1 -confluent-kafka @ https://agent-int-packages.datadoghq.com/built/confluent-kafka/confluent_kafka-2.4.0-20240628191710-cp311-cp311-macosx_10_12_universal2.whl#sha256=4e889f50f5569239b3355923b1378239689e2281d7988f54d34b8cf4a18a9ffb +confluent-kafka @ https://agent-int-packages.datadoghq.com/built/confluent-kafka/confluent_kafka-2.4.0-20240702172111-cp311-cp311-macosx_10_12_universal2.whl#sha256=7ee90e2b820d930578d7b756a0d3e77d770696beea425740ee1838f84eaf9faf cryptography @ https://agent-int-packages.datadoghq.com/external/cryptography/cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl#sha256=dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28 ddsketch @ https://agent-int-packages.datadoghq.com/external/ddsketch/ddsketch-3.0.1-py3-none-any.whl#sha256=6d047b455fe2837c43d366ff1ae6ba0c3166e15499de8688437a75cea914224e ddtrace @ https://agent-int-packages.datadoghq.com/external/ddtrace/ddtrace-1.11.2-cp311-cp311-macosx_11_0_x86_64.whl#sha256=057c1c2024d43936f7c7486508f3e933ab0edaba62954daff285cee8e7fa67b0 @@ -30,7 +30,7 @@ dogpile-cache @ https://agent-int-packages.datadoghq.com/external/dogpile-cache/ envier @ https://agent-int-packages.datadoghq.com/external/envier/envier-0.5.1-py3-none-any.whl#sha256=b45ef6051fea33d0c32a64e186bff2cfb446e2242d6781216c9bc9ce708c5909 filelock @ https://agent-int-packages.datadoghq.com/external/filelock/filelock-3.15.4-py3-none-any.whl#sha256=6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7 foundationdb @ https://agent-int-packages.datadoghq.com/built/foundationdb/foundationdb-6.3.24-20240402154934-py3-none-macosx_10_12_universal2.whl#sha256=14259f824080062cc890965747597ff00a9d6c76a1eb926673fed68a45860ccd -google-auth @ https://agent-int-packages.datadoghq.com/external/google-auth/google_auth-2.30.0-py2.py3-none-any.whl#sha256=8df7da660f62757388b8a7f249df13549b3373f24388cb5d2f1dd91cc18180b5 +google-auth @ https://agent-int-packages.datadoghq.com/external/google-auth/google_auth-2.31.0-py2.py3-none-any.whl#sha256=042c4702efa9f7d3c48d3a69341c209381b125faa6dbf3ebe56bc7e40ae05c23 gssapi @ https://agent-int-packages.datadoghq.com/external/gssapi/gssapi-1.8.3-cp311-cp311-macosx_10_9_x86_64.whl#sha256=b03d6b30f1fcd66d9a688b45a97e302e4dd3f1386d5c333442731aec73cdb409 idna @ https://agent-int-packages.datadoghq.com/external/idna/idna-3.7-py3-none-any.whl#sha256=82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 importlib-metadata @ https://agent-int-packages.datadoghq.com/external/importlib-metadata/importlib_metadata-7.1.0-py3-none-any.whl#sha256=30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 @@ -46,14 +46,14 @@ jsonschema @ https://agent-int-packages.datadoghq.com/external/jsonschema/jsonsc jsonschema-specifications @ https://agent-int-packages.datadoghq.com/external/jsonschema-specifications/jsonschema_specifications-2023.12.1-py3-none-any.whl#sha256=87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c keystoneauth1 @ https://agent-int-packages.datadoghq.com/external/keystoneauth1/keystoneauth1-5.6.0-py3-none-any.whl#sha256=d740843afcf9c159fb929004eee1eecf46573236901e9d8ca2dca5694733a379 krb5 @ https://agent-int-packages.datadoghq.com/external/krb5/krb5-0.5.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=83d0a7d44130681f6a8168fc3609d783c77868fe1ab4a9861da30ae8212d632a -kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubernetes-28.1.0-py2.py3-none-any.whl#sha256=10f56f8160dcb73647f15fafda268e7f60cf7dbc9f8e46d52fcd46d3beb0c18d +kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubernetes-30.1.0-py2.py3-none-any.whl#sha256=e212e8b7579031dd2e512168b617373bc1e03888d41ac4e04039240a292d478d ldap3 @ https://agent-int-packages.datadoghq.com/external/ldap3/ldap3-2.9.1-py2.py3-none-any.whl#sha256=5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70 -lxml @ https://agent-int-packages.datadoghq.com/built/lxml/lxml-4.9.2-20240628191710-cp311-cp311-macosx_10_12_universal2.whl#sha256=0e7ccd0699ac46447fd0b1c1ea1c528537a4b319e2c96853b9e1b6793572d712 +lxml @ https://agent-int-packages.datadoghq.com/built/lxml/lxml-4.9.2-20240702172111-cp311-cp311-macosx_10_12_universal2.whl#sha256=9956dc93ad4175fa5dd5511e67c1433fffd35d7bbe8e0c7d25620faf3894490e lz4 @ https://agent-int-packages.datadoghq.com/external/lz4/lz4-4.3.3-cp311-cp311-macosx_10_9_x86_64.whl#sha256=30e8c20b8857adef7be045c65f47ab1e2c4fabba86a9fa9a997d7674a31ea6b6 mmh3 @ https://agent-int-packages.datadoghq.com/external/mmh3/mmh3-4.1.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=97ac57c6c3301769e757d444fa7c973ceb002cb66534b39cbab5e38de61cd896 msal @ https://agent-int-packages.datadoghq.com/external/msal/msal-1.29.0-py3-none-any.whl#sha256=6b301e63f967481f0cc1a3a3bac0cf322b276855bc1b0955468d9deb3f33d511 msal-extensions @ https://agent-int-packages.datadoghq.com/external/msal-extensions/msal_extensions-1.2.0-py3-none-any.whl#sha256=cf5ba83a2113fa6dc011a254a72f1c223c88d7dfad74cc30617c4679a417704d -netifaces @ https://agent-int-packages.datadoghq.com/built/netifaces/netifaces-0.11.0-20240628191710-cp311-cp311-macosx_10_12_universal2.whl#sha256=31f3d0f45f80aac5ad402980dec87fe53e053394bdcceac83a04ccee5e6dd8df +netifaces @ https://agent-int-packages.datadoghq.com/built/netifaces/netifaces-0.11.0-20240702172112-cp311-cp311-macosx_10_12_universal2.whl#sha256=f4f2c1cdef35f98658476aad26294a3924275f56ceacf653fb89a745b7fe983b oauthlib @ https://agent-int-packages.datadoghq.com/external/oauthlib/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca openstacksdk @ https://agent-int-packages.datadoghq.com/external/openstacksdk/openstacksdk-3.1.0-py3-none-any.whl#sha256=4ce8339b87633f3cae52be4a2e9d1c784fba52f3d60422b594a594b185c63bf3 opentelemetry-api @ https://agent-int-packages.datadoghq.com/external/opentelemetry-api/opentelemetry_api-1.25.0-py3-none-any.whl#sha256=757fa1aa020a0f8fa139f8959e53dec2051cc26b832e76fa839a6d76ecefd737 @@ -68,8 +68,8 @@ platformdirs @ https://agent-int-packages.datadoghq.com/external/platformdirs/pl ply @ https://agent-int-packages.datadoghq.com/external/ply/ply-3.11-py2.py3-none-any.whl#sha256=096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce portalocker @ https://agent-int-packages.datadoghq.com/external/portalocker/portalocker-2.10.0-py3-none-any.whl#sha256=48944147b2cd42520549bc1bb8fe44e220296e56f7c3d551bc6ecce69d9b0de1 prometheus-client @ https://agent-int-packages.datadoghq.com/external/prometheus-client/prometheus_client-0.20.0-py3-none-any.whl#sha256=cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7 -protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-5.27.1-cp38-abi3-macosx_10_9_universal2.whl#sha256=4e38fc29d7df32e01a41cf118b5a968b1efd46b9c41ff515234e794011c78b17 -psutil @ https://agent-int-packages.datadoghq.com/built/psutil/psutil-5.9.0-20240628191711-cp311-cp311-macosx_10_12_universal2.whl#sha256=41fd4bff5e2ac436784e1e1f0f70597d1c95bbd71bbc559cf1b89bd46a991593 +protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-5.27.2-cp38-abi3-macosx_10_9_universal2.whl#sha256=a109916aaac42bff84702fb5187f3edadbc7c97fc2c99c5ff81dd15dcce0d1e5 +psutil @ https://agent-int-packages.datadoghq.com/built/psutil/psutil-5.9.0-20240702172112-cp311-cp311-macosx_10_12_universal2.whl#sha256=7f5540b4f521fdc884b1496944ee509a4373e4e5a7480c91ded3ba6528a6c979 psycopg2-binary @ https://agent-int-packages.datadoghq.com/external/psycopg2-binary/psycopg2_binary-2.9.9-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ee825e70b1a209475622f7f7b776785bd68f34af6e7a46e2e42f27b659b5bc26 pyasn1 @ https://agent-int-packages.datadoghq.com/external/pyasn1/pyasn1-0.4.6-py2.py3-none-any.whl#sha256=3bb81821d47b17146049e7574ab4bf1e315eb7aead30efe5d6a9ca422c9710be pyasn1-modules @ https://agent-int-packages.datadoghq.com/external/pyasn1-modules/pyasn1_modules-0.4.0-py3-none-any.whl#sha256=be04f15b66c206eed667e0bb5ab27e2b1855ea54a842e5037738099e8ca4ae0b @@ -78,8 +78,8 @@ pycryptodomex @ https://agent-int-packages.datadoghq.com/external/pycryptodomex/ pydantic @ https://agent-int-packages.datadoghq.com/external/pydantic/pydantic-2.7.4-py3-none-any.whl#sha256=ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0 pydantic-core @ https://agent-int-packages.datadoghq.com/external/pydantic-core/pydantic_core-2.18.4-cp311-cp311-macosx_10_12_x86_64.whl#sha256=942ba11e7dfb66dc70f9ae66b33452f51ac7bb90676da39a7345e99ffb55402d pyjwt @ https://agent-int-packages.datadoghq.com/external/pyjwt/PyJWT-2.8.0-py3-none-any.whl#sha256=59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 -pymongo @ https://agent-int-packages.datadoghq.com/external/pymongo/pymongo-4.7.3-cp311-cp311-macosx_10_9_x86_64.whl#sha256=79cc6459209e885ba097779eaa0fe7f2fa049db39ab43b1731cf8d065a4650e8 -pymqi @ https://agent-int-packages.datadoghq.com/built/pymqi/pymqi-1.12.10-20240628191711-cp311-cp311-macosx_10_12_universal2.whl#sha256=47473ed642d98fa4886c2316bd057e1cc5b22b1115c82029e576a69b38655292 +pymongo @ https://agent-int-packages.datadoghq.com/external/pymongo/pymongo-4.8.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=6b50040d9767197b77ed420ada29b3bf18a638f9552d80f2da817b7c4a4c9c68 +pymqi @ https://agent-int-packages.datadoghq.com/built/pymqi/pymqi-1.12.10-20240702172112-cp311-cp311-macosx_10_12_universal2.whl#sha256=c941cf23f214ff6a71b17eaf3ee6da25a8bdd936e3a8c8e55b80271d51ef0ca1 pymysql @ https://agent-int-packages.datadoghq.com/external/pymysql/PyMySQL-1.1.1-py3-none-any.whl#sha256=4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c pynacl @ https://agent-int-packages.datadoghq.com/external/pynacl/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl#sha256=401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1 pyodbc @ https://agent-int-packages.datadoghq.com/external/pyodbc/pyodbc-5.1.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=aa6f46377da303bf79bcb4b559899507df4b2559f30dcfdf191358ee4b99f3ab @@ -93,16 +93,16 @@ python-binary-memcached @ https://agent-int-packages.datadoghq.com/external/pyth python-dateutil @ https://agent-int-packages.datadoghq.com/external/python-dateutil/python_dateutil-2.9.0.post0-py2.py3-none-any.whl#sha256=a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 python3-gearman @ https://agent-int-packages.datadoghq.com/external/python3-gearman/python3_gearman-0.1.0-py3-none-any.whl#sha256=4a5808d3a0bfc6c243548ad57e7aab4bee62c9cba2b1c3a860fdd292d46a112d pytz @ https://agent-int-packages.datadoghq.com/external/pytz/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 -pyvmomi @ https://agent-int-packages.datadoghq.com/built/pyvmomi/pyvmomi-8.0.2.0.1-20240402154937-py2.py3-none-macosx_10_12_universal2.whl#sha256=bf0945cb68300a7134c3c9a0c6530e5fdb684779667af0be90d83f9aa779dbe5 +pyvmomi @ https://agent-int-packages.datadoghq.com/built/pyvmomi/pyvmomi-8.0.3.0.1-20240702172113-py2.py3-none-macosx_10_12_universal2.whl#sha256=e173daf28895975b57850fef301837f24fba59dd8ff1d931795732e9be281d57 pyyaml @ https://agent-int-packages.datadoghq.com/external/pyyaml/PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 -redis @ https://agent-int-packages.datadoghq.com/external/redis/redis-5.0.6-py3-none-any.whl#sha256=c0d6d990850c627bbf7be01c5c4cbaadf67b48593e913bb71c9819c30df37eee +redis @ https://agent-int-packages.datadoghq.com/external/redis/redis-5.0.7-py3-none-any.whl#sha256=0e479e24da960c690be5d9b96d21f7b918a98c0cf49af3b6fafaa0753f93a0db referencing @ https://agent-int-packages.datadoghq.com/external/referencing/referencing-0.35.1-py3-none-any.whl#sha256=eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de requests @ https://agent-int-packages.datadoghq.com/external/requests/requests-2.32.3-py3-none-any.whl#sha256=70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 requests-kerberos @ https://agent-int-packages.datadoghq.com/external/requests-kerberos/requests_kerberos-0.15.0-py2.py3-none-any.whl#sha256=ba9b0980b8489c93bfb13854fd118834e576d6700bfea3745cb2e62278cd16a6 requests-ntlm @ https://agent-int-packages.datadoghq.com/external/requests-ntlm/requests_ntlm-1.3.0-py3-none-any.whl#sha256=4c7534a7d0e482bb0928531d621be4b2c74ace437e88c5a357ceb7452d25a510 requests-oauthlib @ https://agent-int-packages.datadoghq.com/external/requests-oauthlib/requests_oauthlib-2.0.0-py2.py3-none-any.whl#sha256=7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36 requests-toolbelt @ https://agent-int-packages.datadoghq.com/external/requests-toolbelt/requests_toolbelt-1.0.0-py2.py3-none-any.whl#sha256=cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06 -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/external/requests-unixsocket2/requests_unixsocket2-0.4.0-py3-none-any.whl#sha256=8d3cafcc7b2feb18f85b0a5e37e4ff7b1a64777000ebd1a883df33012a07f16f +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/external/requests-unixsocket2/requests_unixsocket2-0.4.1-py3-none-any.whl#sha256=8dc532f1dd857458f0c80c27483c0f9b3016e518c27a47e5504a6f59b7931721 requestsexceptions @ https://agent-int-packages.datadoghq.com/external/requestsexceptions/requestsexceptions-1.4.0-py2.py3-none-any.whl#sha256=3083d872b6e07dc5c323563ef37671d992214ad9a32b0ca4a3d7f5500bf38ce3 rethinkdb @ https://agent-int-packages.datadoghq.com/external/rethinkdb/rethinkdb-2.4.9-py2.py3-none-any.whl#sha256=dd2455b3eab5266d8006eeefeb5eb970a3697dfe6aa18e1ab6e1d99233badfcb rpds-py @ https://agent-int-packages.datadoghq.com/external/rpds-py/rpds_py-0.18.1-cp311-cp311-macosx_10_12_x86_64.whl#sha256=6b5ff7e1d63a8281654b5e2896d7f08799378e594f09cf3674e832ecaf396ce8 @@ -111,7 +111,7 @@ s3transfer @ https://agent-int-packages.datadoghq.com/external/s3transfer/s3tran securesystemslib @ https://agent-int-packages.datadoghq.com/external/securesystemslib/securesystemslib-0.28.0-py3-none-any.whl#sha256=9e6b9abe36a511d4f52c759069db8f6f650362ba82d6efc7bc7466a458b3f499 semver @ https://agent-int-packages.datadoghq.com/external/semver/semver-3.0.2-py3-none-any.whl#sha256=b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4 service-identity @ https://agent-int-packages.datadoghq.com/external/service-identity/service_identity-24.1.0-py3-none-any.whl#sha256=a28caf8130c8a5c1c7a6f5293faaf239bbfb7751e4862436920ee6f2616f568a -setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-70.1.1-py3-none-any.whl#sha256=a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95 +setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-70.2.0-py3-none-any.whl#sha256=b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05 simplejson @ https://agent-int-packages.datadoghq.com/external/simplejson/simplejson-3.19.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=adcb3332979cbc941b8fff07181f06d2b608625edc0a4d8bc3ffc0be414ad0c4 six @ https://agent-int-packages.datadoghq.com/external/six/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 snowflake-connector-python @ https://agent-int-packages.datadoghq.com/external/snowflake-connector-python/snowflake_connector_python-3.11.0-cp311-cp311-macosx_11_0_x86_64.whl#sha256=e55eca3ff74fb33ea21455369e171ad61ef31eb916cbbbdab7ccb90cb98ad8d0 @@ -125,8 +125,8 @@ tuf @ https://agent-int-packages.datadoghq.com/external/tuf/tuf-4.0.0-py3-none-a typing-extensions @ https://agent-int-packages.datadoghq.com/external/typing-extensions/typing_extensions-4.12.2-py3-none-any.whl#sha256=04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d tzlocal @ https://agent-int-packages.datadoghq.com/external/tzlocal/tzlocal-5.2-py3-none-any.whl#sha256=49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8 uhashring @ https://agent-int-packages.datadoghq.com/external/uhashring/uhashring-2.3-py3-none-any.whl#sha256=7ee8a25ca495a97effad10bd563c83b4054a6d7606d9530757049a04edab9297 -uptime @ https://agent-int-packages.datadoghq.com/built/uptime/uptime-3.0.1-20240628191711-cp311-cp311-macosx_10_12_universal2.whl#sha256=81bd9f4c70d23a7002fe4740842c6682ebbc88d4c6b17429cf204def20a7410c -urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-1.26.19-py2.py3-none-any.whl#sha256=37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3 +uptime @ https://agent-int-packages.datadoghq.com/built/uptime/uptime-3.0.1-20240702172113-cp311-cp311-macosx_10_12_universal2.whl#sha256=a20535f5a2caf67592404c9d8a62b65146874a64ebde7d6c41524551f4e5e61a +urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-2.2.2-py3-none-any.whl#sha256=a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472 vertica-python @ https://agent-int-packages.datadoghq.com/external/vertica-python/vertica_python-1.3.8-py3-none-any.whl#sha256=a52d05251b25adbadd8fc3d80d5a602f0982ad5e7e5fb84cb0ca26147419a0e8 websocket-client @ https://agent-int-packages.datadoghq.com/external/websocket-client/websocket_client-1.8.0-py3-none-any.whl#sha256=17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526 wrapt @ https://agent-int-packages.datadoghq.com/external/wrapt/wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09 diff --git a/.deps/resolved/windows-x86_64_py3.txt b/.deps/resolved/windows-x86_64_py3.txt index 65a20e2b7f20c..8665aa6113f43 100644 --- a/.deps/resolved/windows-x86_64_py3.txt +++ b/.deps/resolved/windows-x86_64_py3.txt @@ -8,8 +8,8 @@ bcrypt @ https://agent-int-packages.datadoghq.com/external/bcrypt/bcrypt-4.1.3-c beautifulsoup4 @ https://agent-int-packages.datadoghq.com/external/beautifulsoup4/beautifulsoup4-4.12.3-py3-none-any.whl#sha256=b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed binary @ https://agent-int-packages.datadoghq.com/external/binary/binary-1.0.0-py2.py3-none-any.whl#sha256=e1b61f3a5c002717d1a28e4d9d2dc8acbc9d6b12baf7b1e4ab25d743da97e323 boto @ https://agent-int-packages.datadoghq.com/external/boto/boto-2.49.0-py2.py3-none-any.whl#sha256=147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8 -boto3 @ https://agent-int-packages.datadoghq.com/external/boto3/boto3-1.34.131-py3-none-any.whl#sha256=05e388cb937e82be70bfd7eb0c84cf8011ff35cf582a593873ac21675268683b -botocore @ https://agent-int-packages.datadoghq.com/external/botocore/botocore-1.34.131-py3-none-any.whl#sha256=13b011d7b206ce00727dcee26548fa3b550db9046d5a0e90ac25a6e6c8fde6ef +boto3 @ https://agent-int-packages.datadoghq.com/external/boto3/boto3-1.34.136-py3-none-any.whl#sha256=d41037e2c680ab8d6c61a0a4ee6bf1fdd9e857f43996672830a95d62d6f6fa79 +botocore @ https://agent-int-packages.datadoghq.com/external/botocore/botocore-1.34.136-py3-none-any.whl#sha256=c63fe9032091fb9e9477706a3ebfa4d0c109b807907051d892ed574f9b573e61 bytecode @ https://agent-int-packages.datadoghq.com/external/bytecode/bytecode-0.15.1-py3-none-any.whl#sha256=0a1dc340cac823cff605609b8b214f7f9bf80418c6b9e0fc8c6db1793c27137d cachetools @ https://agent-int-packages.datadoghq.com/external/cachetools/cachetools-5.3.3-py3-none-any.whl#sha256=0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945 cattrs @ https://agent-int-packages.datadoghq.com/external/cattrs/cattrs-23.2.3-py3-none-any.whl#sha256=0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108 @@ -30,7 +30,7 @@ dogpile-cache @ https://agent-int-packages.datadoghq.com/external/dogpile-cache/ envier @ https://agent-int-packages.datadoghq.com/external/envier/envier-0.5.1-py3-none-any.whl#sha256=b45ef6051fea33d0c32a64e186bff2cfb446e2242d6781216c9bc9ce708c5909 filelock @ https://agent-int-packages.datadoghq.com/external/filelock/filelock-3.15.4-py3-none-any.whl#sha256=6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7 foundationdb @ https://agent-int-packages.datadoghq.com/built/foundationdb/foundationdb-6.3.24-20240402154628-py3-none-win_amd64.whl#sha256=07e8e97e51dc9248d58d60d33076b82380135c31ab3727a33b885cea17e34bc7 -google-auth @ https://agent-int-packages.datadoghq.com/external/google-auth/google_auth-2.30.0-py2.py3-none-any.whl#sha256=8df7da660f62757388b8a7f249df13549b3373f24388cb5d2f1dd91cc18180b5 +google-auth @ https://agent-int-packages.datadoghq.com/external/google-auth/google_auth-2.31.0-py2.py3-none-any.whl#sha256=042c4702efa9f7d3c48d3a69341c209381b125faa6dbf3ebe56bc7e40ae05c23 idna @ https://agent-int-packages.datadoghq.com/external/idna/idna-3.7-py3-none-any.whl#sha256=82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 importlib-metadata @ https://agent-int-packages.datadoghq.com/external/importlib-metadata/importlib_metadata-7.1.0-py3-none-any.whl#sha256=30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 in-toto @ https://agent-int-packages.datadoghq.com/external/in-toto/in_toto-2.0.0-py3-none-any.whl#sha256=eaf71733cdd5b2309b58b24169c13c24701da72baa43b7432d1dffc308e7bf32 @@ -44,7 +44,7 @@ jsonpointer @ https://agent-int-packages.datadoghq.com/external/jsonpointer/json jsonschema @ https://agent-int-packages.datadoghq.com/external/jsonschema/jsonschema-4.22.0-py3-none-any.whl#sha256=ff4cfd6b1367a40e7bc6411caec72effadd3db0bbe5017de188f2d6108335802 jsonschema-specifications @ https://agent-int-packages.datadoghq.com/external/jsonschema-specifications/jsonschema_specifications-2023.12.1-py3-none-any.whl#sha256=87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c keystoneauth1 @ https://agent-int-packages.datadoghq.com/external/keystoneauth1/keystoneauth1-5.6.0-py3-none-any.whl#sha256=d740843afcf9c159fb929004eee1eecf46573236901e9d8ca2dca5694733a379 -kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubernetes-28.1.0-py2.py3-none-any.whl#sha256=10f56f8160dcb73647f15fafda268e7f60cf7dbc9f8e46d52fcd46d3beb0c18d +kubernetes @ https://agent-int-packages.datadoghq.com/external/kubernetes/kubernetes-30.1.0-py2.py3-none-any.whl#sha256=e212e8b7579031dd2e512168b617373bc1e03888d41ac4e04039240a292d478d ldap3 @ https://agent-int-packages.datadoghq.com/external/ldap3/ldap3-2.9.1-py2.py3-none-any.whl#sha256=5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70 lxml @ https://agent-int-packages.datadoghq.com/external/lxml/lxml-4.9.2-cp311-cp311-win_amd64.whl#sha256=3818b8e2c4b5148567e1b09ce739006acfaa44ce3156f8cbbc11062994b8e8dd lz4 @ https://agent-int-packages.datadoghq.com/external/lz4/lz4-4.3.3-cp311-cp311-win_amd64.whl#sha256=b14d948e6dce389f9a7afc666d60dd1e35fa2138a8ec5306d30cd2e30d36b40c @@ -66,7 +66,7 @@ platformdirs @ https://agent-int-packages.datadoghq.com/external/platformdirs/pl ply @ https://agent-int-packages.datadoghq.com/external/ply/ply-3.11-py2.py3-none-any.whl#sha256=096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce portalocker @ https://agent-int-packages.datadoghq.com/external/portalocker/portalocker-2.10.0-py3-none-any.whl#sha256=48944147b2cd42520549bc1bb8fe44e220296e56f7c3d551bc6ecce69d9b0de1 prometheus-client @ https://agent-int-packages.datadoghq.com/external/prometheus-client/prometheus_client-0.20.0-py3-none-any.whl#sha256=cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7 -protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-5.27.1-cp310-abi3-win_amd64.whl#sha256=25236b69ab4ce1bec413fd4b68a15ef8141794427e0b4dc173e9d5d9dffc3bcd +protobuf @ https://agent-int-packages.datadoghq.com/external/protobuf/protobuf-5.27.2-cp310-abi3-win_amd64.whl#sha256=0e341109c609749d501986b835f667c6e1e24531096cff9d34ae411595e26505 psutil @ https://agent-int-packages.datadoghq.com/built/psutil/psutil-5.9.0-20240402154629-cp311-cp311-win_amd64.whl#sha256=bb2b3078dca3d2eb84d42be817199fd2a6e460dfdbc7256a6ba15fae4f6b9163 psycopg2-binary @ https://agent-int-packages.datadoghq.com/external/psycopg2-binary/psycopg2_binary-2.9.9-cp311-cp311-win_amd64.whl#sha256=b76bedd166805480ab069612119ea636f5ab8f8771e640ae103e05a4aae3e417 pyasn1 @ https://agent-int-packages.datadoghq.com/external/pyasn1/pyasn1-0.4.6-py2.py3-none-any.whl#sha256=3bb81821d47b17146049e7574ab4bf1e315eb7aead30efe5d6a9ca422c9710be @@ -76,7 +76,7 @@ pycryptodomex @ https://agent-int-packages.datadoghq.com/external/pycryptodomex/ pydantic @ https://agent-int-packages.datadoghq.com/external/pydantic/pydantic-2.7.4-py3-none-any.whl#sha256=ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0 pydantic-core @ https://agent-int-packages.datadoghq.com/external/pydantic-core/pydantic_core-2.18.4-cp311-none-win_amd64.whl#sha256=8a7164fe2005d03c64fd3b85649891cd4953a8de53107940bf272500ba8a788b pyjwt @ https://agent-int-packages.datadoghq.com/external/pyjwt/PyJWT-2.8.0-py3-none-any.whl#sha256=59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 -pymongo @ https://agent-int-packages.datadoghq.com/external/pymongo/pymongo-4.7.3-cp311-cp311-win_amd64.whl#sha256=4a4cc91c28e81c0ce03d3c278e399311b0af44665668a91828aec16527082676 +pymongo @ https://agent-int-packages.datadoghq.com/external/pymongo/pymongo-4.8.0-cp311-cp311-win_amd64.whl#sha256=b747c0e257b9d3e6495a018309b9e0c93b7f0d65271d1d62e572747f4ffafc88 pymqi @ https://agent-int-packages.datadoghq.com/built/pymqi/pymqi-1.12.10-20240402154630-cp311-cp311-win_amd64.whl#sha256=2452a18c9e3f88e2f182049d04925ed3ac89144b9237408ed915012385d26359 pymysql @ https://agent-int-packages.datadoghq.com/external/pymysql/PyMySQL-1.1.1-py3-none-any.whl#sha256=4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c pynacl @ https://agent-int-packages.datadoghq.com/external/pynacl/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl#sha256=20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93 @@ -89,17 +89,17 @@ pysocks @ https://agent-int-packages.datadoghq.com/external/pysocks/PySocks-1.7. pyspnego @ https://agent-int-packages.datadoghq.com/external/pyspnego/pyspnego-0.11.0-py3-none-any.whl#sha256=cdfe9af7b19749d692e02fd4bd1b4b71d44ecb8dd9b2474abb0f3d90f6154e7e python-dateutil @ https://agent-int-packages.datadoghq.com/external/python-dateutil/python_dateutil-2.9.0.post0-py2.py3-none-any.whl#sha256=a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 pytz @ https://agent-int-packages.datadoghq.com/external/pytz/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 -pyvmomi @ https://agent-int-packages.datadoghq.com/built/pyvmomi/pyvmomi-8.0.2.0.1-20240402154631-py2.py3-none-win_amd64.whl#sha256=66788f9e615cae4e6d6d9297fbdfd5b1295e0175d71a213a85917a4a2e4b93ce +pyvmomi @ https://agent-int-packages.datadoghq.com/built/pyvmomi/pyvmomi-8.0.3.0.1-20240702172100-py2.py3-none-win_amd64.whl#sha256=19446fe48dbdd8b64097eff5648cc4b5a19165ede40826507f5e1398e1032e12 pywin32 @ https://agent-int-packages.datadoghq.com/external/pywin32/pywin32-306-cp311-cp311-win_amd64.whl#sha256=a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e pyyaml @ https://agent-int-packages.datadoghq.com/external/pyyaml/PyYAML-6.0.1-cp311-cp311-win_amd64.whl#sha256=bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 -redis @ https://agent-int-packages.datadoghq.com/external/redis/redis-5.0.6-py3-none-any.whl#sha256=c0d6d990850c627bbf7be01c5c4cbaadf67b48593e913bb71c9819c30df37eee +redis @ https://agent-int-packages.datadoghq.com/external/redis/redis-5.0.7-py3-none-any.whl#sha256=0e479e24da960c690be5d9b96d21f7b918a98c0cf49af3b6fafaa0753f93a0db referencing @ https://agent-int-packages.datadoghq.com/external/referencing/referencing-0.35.1-py3-none-any.whl#sha256=eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de requests @ https://agent-int-packages.datadoghq.com/external/requests/requests-2.32.3-py3-none-any.whl#sha256=70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 requests-kerberos @ https://agent-int-packages.datadoghq.com/external/requests-kerberos/requests_kerberos-0.15.0-py2.py3-none-any.whl#sha256=ba9b0980b8489c93bfb13854fd118834e576d6700bfea3745cb2e62278cd16a6 requests-ntlm @ https://agent-int-packages.datadoghq.com/external/requests-ntlm/requests_ntlm-1.3.0-py3-none-any.whl#sha256=4c7534a7d0e482bb0928531d621be4b2c74ace437e88c5a357ceb7452d25a510 requests-oauthlib @ https://agent-int-packages.datadoghq.com/external/requests-oauthlib/requests_oauthlib-2.0.0-py2.py3-none-any.whl#sha256=7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36 requests-toolbelt @ https://agent-int-packages.datadoghq.com/external/requests-toolbelt/requests_toolbelt-1.0.0-py2.py3-none-any.whl#sha256=cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06 -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/external/requests-unixsocket2/requests_unixsocket2-0.4.0-py3-none-any.whl#sha256=8d3cafcc7b2feb18f85b0a5e37e4ff7b1a64777000ebd1a883df33012a07f16f +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/external/requests-unixsocket2/requests_unixsocket2-0.4.1-py3-none-any.whl#sha256=8dc532f1dd857458f0c80c27483c0f9b3016e518c27a47e5504a6f59b7931721 requestsexceptions @ https://agent-int-packages.datadoghq.com/external/requestsexceptions/requestsexceptions-1.4.0-py2.py3-none-any.whl#sha256=3083d872b6e07dc5c323563ef37671d992214ad9a32b0ca4a3d7f5500bf38ce3 rethinkdb @ https://agent-int-packages.datadoghq.com/external/rethinkdb/rethinkdb-2.4.9-py2.py3-none-any.whl#sha256=dd2455b3eab5266d8006eeefeb5eb970a3697dfe6aa18e1ab6e1d99233badfcb rpds-py @ https://agent-int-packages.datadoghq.com/external/rpds-py/rpds_py-0.18.1-cp311-none-win_amd64.whl#sha256=70a838f7754483bcdc830444952fd89645569e7452e3226de4a613a4c1793fb2 @@ -108,7 +108,7 @@ s3transfer @ https://agent-int-packages.datadoghq.com/external/s3transfer/s3tran securesystemslib @ https://agent-int-packages.datadoghq.com/external/securesystemslib/securesystemslib-0.28.0-py3-none-any.whl#sha256=9e6b9abe36a511d4f52c759069db8f6f650362ba82d6efc7bc7466a458b3f499 semver @ https://agent-int-packages.datadoghq.com/external/semver/semver-3.0.2-py3-none-any.whl#sha256=b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4 service-identity @ https://agent-int-packages.datadoghq.com/external/service-identity/service_identity-24.1.0-py3-none-any.whl#sha256=a28caf8130c8a5c1c7a6f5293faaf239bbfb7751e4862436920ee6f2616f568a -setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-70.1.1-py3-none-any.whl#sha256=a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95 +setuptools @ https://agent-int-packages.datadoghq.com/external/setuptools/setuptools-70.2.0-py3-none-any.whl#sha256=b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05 simplejson @ https://agent-int-packages.datadoghq.com/external/simplejson/simplejson-3.19.2-cp311-cp311-win_amd64.whl#sha256=9300aee2a8b5992d0f4293d88deb59c218989833e3396c824b69ba330d04a589 six @ https://agent-int-packages.datadoghq.com/external/six/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 snowflake-connector-python @ https://agent-int-packages.datadoghq.com/external/snowflake-connector-python/snowflake_connector_python-3.11.0-cp311-cp311-win_amd64.whl#sha256=ae890352e9e09e2084fd13647a664a31343bfa58d9aa41770e9ec3b810f9bc2c @@ -124,7 +124,7 @@ typing-extensions @ https://agent-int-packages.datadoghq.com/external/typing-ext tzdata @ https://agent-int-packages.datadoghq.com/external/tzdata/tzdata-2024.1-py2.py3-none-any.whl#sha256=9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252 tzlocal @ https://agent-int-packages.datadoghq.com/external/tzlocal/tzlocal-5.2-py3-none-any.whl#sha256=49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8 uptime @ https://agent-int-packages.datadoghq.com/built/uptime/uptime-3.0.1-20240402154631-cp311-cp311-win_amd64.whl#sha256=f45d4f913936457ad976b516f39d95b5f13824f29ccabaff24bdfb65c7719cce -urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-1.26.19-py2.py3-none-any.whl#sha256=37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3 +urllib3 @ https://agent-int-packages.datadoghq.com/external/urllib3/urllib3-2.2.2-py3-none-any.whl#sha256=a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472 vertica-python @ https://agent-int-packages.datadoghq.com/external/vertica-python/vertica_python-1.3.8-py3-none-any.whl#sha256=a52d05251b25adbadd8fc3d80d5a602f0982ad5e7e5fb84cb0ca26147419a0e8 websocket-client @ https://agent-int-packages.datadoghq.com/external/websocket-client/websocket_client-1.8.0-py3-none-any.whl#sha256=17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526 wrapt @ https://agent-int-packages.datadoghq.com/external/wrapt/wrapt-1.16.0-cp311-cp311-win_amd64.whl#sha256=aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89 From 88f12362dea9c731f2d8defbdbcd29ac6b40d566 Mon Sep 17 00:00:00 2001 From: vivek-datadog <131680079+vivek-datadog@users.noreply.github.com> Date: Thu, 4 Jul 2024 17:12:03 +0200 Subject: [PATCH 14/68] Fix format issue with master pipeline flaky test management pr17910 (#17979) --- .github/workflows/flaky-tests.yml | 47 +++++++ .github/workflows/master.yml | 7 ++ .github/workflows/pr-test.yml | 6 + .github/workflows/test-all.yml | 197 ++++++++++++++++++++++++++++++ .github/workflows/test-target.yml | 15 ++- ddev/src/ddev/cli/validate/ci.py | 7 ++ 6 files changed, 274 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/flaky-tests.yml diff --git a/.github/workflows/flaky-tests.yml b/.github/workflows/flaky-tests.yml new file mode 100644 index 0000000000000..1f4cb44af456d --- /dev/null +++ b/.github/workflows/flaky-tests.yml @@ -0,0 +1,47 @@ +name: Daily Flaky Tests (every 8 hours) + +on: + schedule: + # 4 AM, 12 PM, 8 PM UTC + - cron: "0 4,12,20 * * *" + +jobs: + cache: + uses: ./.github/workflows/cache-shared-deps.yml + + test: + needs: + - cache + + uses: ./.github/workflows/test-all.yml + with: + repo: core + + # Options + standard: true + # Because -m starts with a dash, + # click (the library used to build the CLI) will + # interpret it as an option, not as an argument. + # To avoid this, using -- syntax, + # which tells the command that everything following it + # should be treated as positional arguments, not options + pytest-args: '-m flaky' + secrets: inherit + + publish-test-results: + needs: + - test + if: success() || failure() + concurrency: + group: test-results + + uses: ./.github/workflows/test-results-master.yml + secrets: inherit + + submit-traces: + needs: + - test + if: success() || failure() + + uses: ./.github/workflows/submit-traces.yml + secrets: inherit diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index b9c65bc912f12..5b9a125495f2d 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -19,6 +19,13 @@ jobs: # Options standard: true + # Because -m starts with a dash, + # click (the library used to build the CLI) will + # interpret it as an option, not as an argument. + # To avoid this, using -- syntax, + # which tells the command that everything following it + # should be treated as positional arguments, not options + pytest-args: '-m "not flaky"' secrets: inherit publish-test-results: diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 498f5bc953304..89327f79e438b 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -15,6 +15,11 @@ on: required: false default: "" type: string + pytest-args: + description: "Arguments to pass to pytest" + required: false + type: string + default: "" jobs: compute-matrix: @@ -47,6 +52,7 @@ jobs: # For other repositories setup-env-vars: "${{ inputs.setup-env-vars }}" python-version: "${{ inputs.python-version }}" + pytest-args: ${{ inputs.pytest-args }} secrets: inherit save-event: diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index adda37c5dc36d..c3a1b75b66094 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -47,6 +47,11 @@ on: required: false default: "" type: string + pytest-args: + description: "Arguments to pass to pytest" + required: false + type: string + default: "" jobs: jd316aba: @@ -67,6 +72,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j6712d43: uses: ./.github/workflows/test-target.yml @@ -86,6 +92,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jb232c8c: uses: ./.github/workflows/test-target.yml @@ -105,6 +112,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jda96080: uses: ./.github/workflows/test-target.yml @@ -124,6 +132,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j77217e9: uses: ./.github/workflows/test-target.yml @@ -143,6 +152,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j1176210: uses: ./.github/workflows/test-target.yml @@ -162,6 +172,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8cdb65b: uses: ./.github/workflows/test-target.yml @@ -181,6 +192,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8c73c41: uses: ./.github/workflows/test-target.yml @@ -200,6 +212,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jd66e148: uses: ./.github/workflows/test-target.yml @@ -219,6 +232,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j02a4c95: uses: ./.github/workflows/test-target.yml @@ -238,6 +252,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jb4c5802: uses: ./.github/workflows/test-target.yml @@ -257,6 +272,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jce7999e: uses: ./.github/workflows/test-target.yml @@ -276,6 +292,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jd58222c: uses: ./.github/workflows/test-target.yml @@ -295,6 +312,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jaaddf5e: uses: ./.github/workflows/test-target.yml @@ -314,6 +332,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j9c53fc8: uses: ./.github/workflows/test-target.yml @@ -333,6 +352,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j87ec402: uses: ./.github/workflows/test-target.yml @@ -352,6 +372,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jacbd843: uses: ./.github/workflows/test-target.yml @@ -371,6 +392,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j3650884: uses: ./.github/workflows/test-target.yml @@ -390,6 +412,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j14e797c: uses: ./.github/workflows/test-target.yml @@ -409,6 +432,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j92d42de: uses: ./.github/workflows/test-target.yml @@ -428,6 +452,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8c9f9aa: uses: ./.github/workflows/test-target.yml @@ -447,6 +472,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j924327f: uses: ./.github/workflows/test-target.yml @@ -466,6 +492,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8d83b0b: uses: ./.github/workflows/test-target.yml @@ -485,6 +512,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jfcf4b1a: uses: ./.github/workflows/test-target.yml @@ -504,6 +532,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j2883ff0: uses: ./.github/workflows/test-target.yml @@ -523,6 +552,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j481d7ae: uses: ./.github/workflows/test-target.yml @@ -542,6 +572,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j47ac8c7: uses: ./.github/workflows/test-target.yml @@ -561,6 +592,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit je3297e4: uses: ./.github/workflows/test-target.yml @@ -580,6 +612,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jf75679d: uses: ./.github/workflows/test-target.yml @@ -599,6 +632,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jdffb064: uses: ./.github/workflows/test-target.yml @@ -618,6 +652,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit je6bb20d: uses: ./.github/workflows/test-target.yml @@ -637,6 +672,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jeb29398: uses: ./.github/workflows/test-target.yml @@ -656,6 +692,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j3de8d1a: uses: ./.github/workflows/test-target.yml @@ -675,6 +712,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jafd4d40: uses: ./.github/workflows/test-target.yml @@ -694,6 +732,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jdee91dd: uses: ./.github/workflows/test-target.yml @@ -713,6 +752,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j4131274: uses: ./.github/workflows/test-target.yml @@ -732,6 +772,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j26f9a18: uses: ./.github/workflows/test-target.yml @@ -751,6 +792,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j7faf392: uses: ./.github/workflows/test-target.yml @@ -770,6 +812,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j89ec795: uses: ./.github/workflows/test-target.yml @@ -789,6 +832,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j13a53db: uses: ./.github/workflows/test-target.yml @@ -808,6 +852,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jb67436a: uses: ./.github/workflows/test-target.yml @@ -827,6 +872,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j483e815: uses: ./.github/workflows/test-target.yml @@ -846,6 +892,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j1e84c35: uses: ./.github/workflows/test-target.yml @@ -865,6 +912,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit ja3692a6: uses: ./.github/workflows/test-target.yml @@ -884,6 +932,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j2d21154: uses: ./.github/workflows/test-target.yml @@ -903,6 +952,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j69f9754: uses: ./.github/workflows/test-target.yml @@ -922,6 +972,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jc8f84c3: uses: ./.github/workflows/test-target.yml @@ -941,6 +992,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j4b2fe2b: uses: ./.github/workflows/test-target.yml @@ -960,6 +1012,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j92e8bce: uses: ./.github/workflows/test-target.yml @@ -979,6 +1032,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j3e27604: uses: ./.github/workflows/test-target.yml @@ -998,6 +1052,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j301b42d: uses: ./.github/workflows/test-target.yml @@ -1017,6 +1072,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jc6b16d4: uses: ./.github/workflows/test-target.yml @@ -1036,6 +1092,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j274814f: uses: ./.github/workflows/test-target.yml @@ -1055,6 +1112,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j562bfe5: uses: ./.github/workflows/test-target.yml @@ -1074,6 +1132,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j72f26c1: uses: ./.github/workflows/test-target.yml @@ -1093,6 +1152,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j31c819b: uses: ./.github/workflows/test-target.yml @@ -1112,6 +1172,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j93163a5: uses: ./.github/workflows/test-target.yml @@ -1131,6 +1192,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jc4fef15: uses: ./.github/workflows/test-target.yml @@ -1150,6 +1212,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jc38cbd9: uses: ./.github/workflows/test-target.yml @@ -1169,6 +1232,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j284dfb9: uses: ./.github/workflows/test-target.yml @@ -1188,6 +1252,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j1856b23: uses: ./.github/workflows/test-target.yml @@ -1207,6 +1272,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j4f2c848: uses: ./.github/workflows/test-target.yml @@ -1226,6 +1292,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j6134697: uses: ./.github/workflows/test-target.yml @@ -1245,6 +1312,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jc364450: uses: ./.github/workflows/test-target.yml @@ -1264,6 +1332,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j3becdbc: uses: ./.github/workflows/test-target.yml @@ -1283,6 +1352,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j4ea3f09: uses: ./.github/workflows/test-target.yml @@ -1302,6 +1372,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j563739d: uses: ./.github/workflows/test-target.yml @@ -1321,6 +1392,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j16f5513: uses: ./.github/workflows/test-target.yml @@ -1340,6 +1412,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j3399e09: uses: ./.github/workflows/test-target.yml @@ -1359,6 +1432,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j1fede0e: uses: ./.github/workflows/test-target.yml @@ -1378,6 +1452,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j5979923: uses: ./.github/workflows/test-target.yml @@ -1397,6 +1472,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8a8c654: uses: ./.github/workflows/test-target.yml @@ -1416,6 +1492,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j9cb9f66: uses: ./.github/workflows/test-target.yml @@ -1435,6 +1512,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j240a78b: uses: ./.github/workflows/test-target.yml @@ -1454,6 +1532,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j00a0dd6: uses: ./.github/workflows/test-target.yml @@ -1473,6 +1552,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jaf48338: uses: ./.github/workflows/test-target.yml @@ -1492,6 +1572,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit je66898a: uses: ./.github/workflows/test-target.yml @@ -1511,6 +1592,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j56d6f32: uses: ./.github/workflows/test-target.yml @@ -1530,6 +1612,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j95a2b08: uses: ./.github/workflows/test-target.yml @@ -1549,6 +1632,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j5a9585a: uses: ./.github/workflows/test-target.yml @@ -1568,6 +1652,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j60f59ae: uses: ./.github/workflows/test-target.yml @@ -1587,6 +1672,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j9accedb: uses: ./.github/workflows/test-target.yml @@ -1606,6 +1692,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jf4d06ee: uses: ./.github/workflows/test-target.yml @@ -1625,6 +1712,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j662406b: uses: ./.github/workflows/test-target.yml @@ -1644,6 +1732,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j440815a: uses: ./.github/workflows/test-target.yml @@ -1663,6 +1752,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j0676988: uses: ./.github/workflows/test-target.yml @@ -1682,6 +1772,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j9267198: uses: ./.github/workflows/test-target.yml @@ -1701,6 +1792,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j5dc7466: uses: ./.github/workflows/test-target.yml @@ -1720,6 +1812,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j0c16521: uses: ./.github/workflows/test-target.yml @@ -1739,6 +1832,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j46da136: uses: ./.github/workflows/test-target.yml @@ -1758,6 +1852,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit je4a5f92: uses: ./.github/workflows/test-target.yml @@ -1777,6 +1872,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jeaad214: uses: ./.github/workflows/test-target.yml @@ -1796,6 +1892,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j77f29c1: uses: ./.github/workflows/test-target.yml @@ -1815,6 +1912,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jaee58c5: uses: ./.github/workflows/test-target.yml @@ -1834,6 +1932,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j92491f1: uses: ./.github/workflows/test-target.yml @@ -1853,6 +1952,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j1ce0516: uses: ./.github/workflows/test-target.yml @@ -1872,6 +1972,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j19a1b27: uses: ./.github/workflows/test-target.yml @@ -1891,6 +1992,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jd1817b8: uses: ./.github/workflows/test-target.yml @@ -1910,6 +2012,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j5a98c4e: uses: ./.github/workflows/test-target.yml @@ -1929,6 +2032,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jeebd4ae: uses: ./.github/workflows/test-target.yml @@ -1948,6 +2052,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j24a5cff: uses: ./.github/workflows/test-target.yml @@ -1967,6 +2072,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j045310a: uses: ./.github/workflows/test-target.yml @@ -1986,6 +2092,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jba841f0: uses: ./.github/workflows/test-target.yml @@ -2005,6 +2112,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j61e565f: uses: ./.github/workflows/test-target.yml @@ -2024,6 +2132,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j1c6adb2: uses: ./.github/workflows/test-target.yml @@ -2043,6 +2152,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8b3b099: uses: ./.github/workflows/test-target.yml @@ -2062,6 +2172,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j29dcd3a: uses: ./.github/workflows/test-target.yml @@ -2081,6 +2192,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit ja15251c: uses: ./.github/workflows/test-target.yml @@ -2100,6 +2212,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j141298e: uses: ./.github/workflows/test-target.yml @@ -2119,6 +2232,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j75f52a9: uses: ./.github/workflows/test-target.yml @@ -2138,6 +2252,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8d5404b: uses: ./.github/workflows/test-target.yml @@ -2157,6 +2272,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j5b70138: uses: ./.github/workflows/test-target.yml @@ -2176,6 +2292,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jbdadec9: uses: ./.github/workflows/test-target.yml @@ -2195,6 +2312,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j76c310f: uses: ./.github/workflows/test-target.yml @@ -2214,6 +2332,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j91231ff: uses: ./.github/workflows/test-target.yml @@ -2233,6 +2352,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j211906c: uses: ./.github/workflows/test-target.yml @@ -2252,6 +2372,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j5df646e: uses: ./.github/workflows/test-target.yml @@ -2271,6 +2392,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jfc1e031: uses: ./.github/workflows/test-target.yml @@ -2290,6 +2412,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j7a1dfc6: uses: ./.github/workflows/test-target.yml @@ -2309,6 +2432,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j6a5b846: uses: ./.github/workflows/test-target.yml @@ -2328,6 +2452,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j93fea02: uses: ./.github/workflows/test-target.yml @@ -2347,6 +2472,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit ja114815: uses: ./.github/workflows/test-target.yml @@ -2366,6 +2492,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j74dc677: uses: ./.github/workflows/test-target.yml @@ -2385,6 +2512,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j2cf0a0a: uses: ./.github/workflows/test-target.yml @@ -2404,6 +2532,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jaaa5727: uses: ./.github/workflows/test-target.yml @@ -2423,6 +2552,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j88ddb5b: uses: ./.github/workflows/test-target.yml @@ -2442,6 +2572,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j65171af: uses: ./.github/workflows/test-target.yml @@ -2461,6 +2592,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j748e188: uses: ./.github/workflows/test-target.yml @@ -2480,6 +2612,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j4dff42c: uses: ./.github/workflows/test-target.yml @@ -2499,6 +2632,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j4a8166b: uses: ./.github/workflows/test-target.yml @@ -2518,6 +2652,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jaa8b34b: uses: ./.github/workflows/test-target.yml @@ -2537,6 +2672,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j54fefc0: uses: ./.github/workflows/test-target.yml @@ -2556,6 +2692,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j44368ad: uses: ./.github/workflows/test-target.yml @@ -2575,6 +2712,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8e38a40: uses: ./.github/workflows/test-target.yml @@ -2594,6 +2732,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jaeea6e0: uses: ./.github/workflows/test-target.yml @@ -2613,6 +2752,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit je083bd8: uses: ./.github/workflows/test-target.yml @@ -2632,6 +2772,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jbfa97cf: uses: ./.github/workflows/test-target.yml @@ -2651,6 +2792,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jbb39de2: uses: ./.github/workflows/test-target.yml @@ -2670,6 +2812,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j5987374: uses: ./.github/workflows/test-target.yml @@ -2689,6 +2832,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j694032b: uses: ./.github/workflows/test-target.yml @@ -2708,6 +2852,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jcc172a7: uses: ./.github/workflows/test-target.yml @@ -2727,6 +2872,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit ja7f6415: uses: ./.github/workflows/test-target.yml @@ -2746,6 +2892,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j47000ee: uses: ./.github/workflows/test-target.yml @@ -2765,6 +2912,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jdeada9f: uses: ./.github/workflows/test-target.yml @@ -2784,6 +2932,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j21f86cb: uses: ./.github/workflows/test-target.yml @@ -2803,6 +2952,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j111b452: uses: ./.github/workflows/test-target.yml @@ -2822,6 +2972,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j6a5cfa3: uses: ./.github/workflows/test-target.yml @@ -2841,6 +2992,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j6600bce: uses: ./.github/workflows/test-target.yml @@ -2860,6 +3012,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j02f6aa9: uses: ./.github/workflows/test-target.yml @@ -2879,6 +3032,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j06ca546: uses: ./.github/workflows/test-target.yml @@ -2898,6 +3052,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j1dbd59f: uses: ./.github/workflows/test-target.yml @@ -2917,6 +3072,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j2d7c8f5: uses: ./.github/workflows/test-target.yml @@ -2936,6 +3092,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j9485e6f: uses: ./.github/workflows/test-target.yml @@ -2955,6 +3112,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j529bc3b: uses: ./.github/workflows/test-target.yml @@ -2974,6 +3132,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j31a95c8: uses: ./.github/workflows/test-target.yml @@ -2993,6 +3152,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j3a8e004: uses: ./.github/workflows/test-target.yml @@ -3012,6 +3172,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jaf4b616: uses: ./.github/workflows/test-target.yml @@ -3031,6 +3192,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j01c4d3c: uses: ./.github/workflows/test-target.yml @@ -3050,6 +3212,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j2981dbe: uses: ./.github/workflows/test-target.yml @@ -3069,6 +3232,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j6f0ded4: uses: ./.github/workflows/test-target.yml @@ -3088,6 +3252,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jf04a052: uses: ./.github/workflows/test-target.yml @@ -3107,6 +3272,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jde3891f: uses: ./.github/workflows/test-target.yml @@ -3126,6 +3292,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j64445e6: uses: ./.github/workflows/test-target.yml @@ -3145,6 +3312,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j1eeafd2: uses: ./.github/workflows/test-target.yml @@ -3164,6 +3332,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j87dbe3f: uses: ./.github/workflows/test-target.yml @@ -3183,6 +3352,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8217a3a: uses: ./.github/workflows/test-target.yml @@ -3202,6 +3372,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jf4a7e97: uses: ./.github/workflows/test-target.yml @@ -3221,6 +3392,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit je68b3b9: uses: ./.github/workflows/test-target.yml @@ -3240,6 +3412,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j840fec7: uses: ./.github/workflows/test-target.yml @@ -3259,6 +3432,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jeefbe37: uses: ./.github/workflows/test-target.yml @@ -3278,6 +3452,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jd1c18ec: uses: ./.github/workflows/test-target.yml @@ -3297,6 +3472,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8486f6e: uses: ./.github/workflows/test-target.yml @@ -3316,6 +3492,7 @@ jobs: test-py2: true test-py3: false minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j9438e1d: uses: ./.github/workflows/test-target.yml @@ -3335,6 +3512,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j4baeba2: uses: ./.github/workflows/test-target.yml @@ -3354,6 +3532,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j41a575a: uses: ./.github/workflows/test-target.yml @@ -3373,6 +3552,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j8a1b5bb: uses: ./.github/workflows/test-target.yml @@ -3392,6 +3572,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jfc2bf01: uses: ./.github/workflows/test-target.yml @@ -3411,6 +3592,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jd0626ef: uses: ./.github/workflows/test-target.yml @@ -3430,6 +3612,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j0c8fc90: uses: ./.github/workflows/test-target.yml @@ -3449,6 +3632,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j5d55c41: uses: ./.github/workflows/test-target.yml @@ -3468,6 +3652,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j9981b0b: uses: ./.github/workflows/test-target.yml @@ -3487,6 +3672,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jeae0788: uses: ./.github/workflows/test-target.yml @@ -3506,6 +3692,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jb120af1: uses: ./.github/workflows/test-target.yml @@ -3525,6 +3712,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j269c8a5: uses: ./.github/workflows/test-target.yml @@ -3544,6 +3732,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit je95095e: uses: ./.github/workflows/test-target.yml @@ -3563,6 +3752,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j40e5c98: uses: ./.github/workflows/test-target.yml @@ -3582,6 +3772,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j70c9219: uses: ./.github/workflows/test-target.yml @@ -3601,6 +3792,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit jc1fb93c: uses: ./.github/workflows/test-target.yml @@ -3620,6 +3812,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j9798a89: uses: ./.github/workflows/test-target.yml @@ -3639,6 +3832,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit j25cdd56: uses: ./.github/workflows/test-target.yml @@ -3658,6 +3852,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit ja6bc642: uses: ./.github/workflows/test-target.yml @@ -3677,6 +3872,7 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit ja446cea: uses: ./.github/workflows/test-target.yml @@ -3696,4 +3892,5 @@ jobs: test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} secrets: inherit diff --git a/.github/workflows/test-target.yml b/.github/workflows/test-target.yml index 3177ce97a02ff..6805d8cddfbec 100644 --- a/.github/workflows/test-target.yml +++ b/.github/workflows/test-target.yml @@ -77,6 +77,11 @@ on: required: false default: "" type: string + pytest-args: + description: "Arguments to pass to pytest" + required: false + type: string + default: "" defaults: run: @@ -207,23 +212,23 @@ jobs: if: inputs.standard && !inputs.minimum-base-package env: DDEV_TEST_ENABLE_TRACING: "${{ inputs.repo == 'core' && '1' || '0' }}" - run: ddev test --cov --junit ${{ inputs.target }} + run: ddev test --cov --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - name: Run Unit & Integration tests with minimum version of base package if: inputs.standard && inputs.minimum-base-package - run: ddev test --compat --recreate --junit ${{ inputs.target }} + run: ddev test --compat --recreate --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - name: Run E2E tests with latest base package if: inputs.standard && inputs.repo == 'core' && !inputs.minimum-base-package env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" - run: ddev env test --base --new-env --junit ${{ inputs.target }} + run: ddev env test --base --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} - name: Run E2E tests if: inputs.standard && inputs.repo != 'core' env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" - run: ddev env test --new-env --junit ${{ inputs.target }} + run: ddev env test --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} - name: Run benchmarks if: inputs.benchmark @@ -238,7 +243,7 @@ jobs: env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" DDEV_TEST_ENABLE_TRACING: "${{ inputs.repo == 'core' && '1' || '0' }}" - run: ddev env test --base --new-env --junit ${{ inputs.target }}:latest + run: ddev env test --base --new-env --junit ${{ inputs.target }}:latest ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} - name: View trace log if: inputs.repo == 'core' && always() diff --git a/ddev/src/ddev/cli/validate/ci.py b/ddev/src/ddev/cli/validate/ci.py index d883b477a4a64..40ed9b26462e1 100644 --- a/ddev/src/ddev/cli/validate/ci.py +++ b/ddev/src/ddev/cli/validate/ci.py @@ -96,6 +96,13 @@ def ci(app: Application, sync: bool): 'setup-env-vars': '${{ inputs.setup-env-vars }}', } ) + # Allow providing pytest arguments for core, support to run (or not run) flaky tests + if is_core: + config.update( + { + 'pytest-args': '${{ inputs.pytest-args }}', + } + ) # Prevent redundant job hierarchy names at the bottom of pull requests and also satisfy the naming requirements: # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_id From cfb724a580041ed7bb1c43265e5c6cdaa8cb42e2 Mon Sep 17 00:00:00 2001 From: Vivekanand Ilango Date: Thu, 4 Jul 2024 17:27:24 +0200 Subject: [PATCH 15/68] Add manual trigger for flaky test suite --- .github/workflows/flaky-tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/flaky-tests.yml b/.github/workflows/flaky-tests.yml index 1f4cb44af456d..ef518b3a34aa1 100644 --- a/.github/workflows/flaky-tests.yml +++ b/.github/workflows/flaky-tests.yml @@ -1,6 +1,7 @@ name: Daily Flaky Tests (every 8 hours) on: + workflow_dispatch: schedule: # 4 AM, 12 PM, 8 PM UTC - cron: "0 4,12,20 * * *" From 8316673dc0e8d5806b8c5fdb7263957a7c950cff Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Thu, 4 Jul 2024 17:41:19 +0200 Subject: [PATCH 16/68] Mark envoy tests as flaky (#17985) --- envoy/tests/legacy/test_integration.py | 2 +- envoy/tests/test_integration.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/envoy/tests/legacy/test_integration.py b/envoy/tests/legacy/test_integration.py index 8e756e94aa4f4..db6554bec6450 100644 --- a/envoy/tests/legacy/test_integration.py +++ b/envoy/tests/legacy/test_integration.py @@ -12,7 +12,7 @@ CHECK_NAME = 'envoy' UNIQUE_METRICS = EXT_METRICS + RBAC_METRICS -pytestmark = [pytest.mark.integration, pytest.mark.usefixtures('dd_environment')] +pytestmark = [pytest.mark.integration, pytest.mark.usefixtures('dd_environment'), pytest.mark.flaky] def test_success(aggregator, check, dd_run_check): diff --git a/envoy/tests/test_integration.py b/envoy/tests/test_integration.py index efdca881192ec..be98fdef79975 100644 --- a/envoy/tests/test_integration.py +++ b/envoy/tests/test_integration.py @@ -18,7 +18,12 @@ requires_new_environment, ) -pytestmark = [requires_new_environment, pytest.mark.integration, pytest.mark.usefixtures('dd_environment')] +pytestmark = [ + requires_new_environment, + pytest.mark.integration, + pytest.mark.usefixtures('dd_environment'), + pytest.mark.flaky, +] SKIP_TAG_ASSERTION = [ From b4917a7c281ceb04f714da968899d9a24871559f Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Fri, 5 Jul 2024 10:53:37 +0200 Subject: [PATCH 17/68] [Release] Bumped vllm version to 1.0.0 (#17988) --- requirements-agent-release.txt | 1 + vllm/CHANGELOG.md | 5 +++++ vllm/changelog.d/17756.added | 1 - vllm/datadog_checks/vllm/__about__.py | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) delete mode 100644 vllm/changelog.d/17756.added diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index 6218a81019a83..9bbef011cce88 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -180,6 +180,7 @@ datadog-twistlock==3.6.1 datadog-varnish==2.1.0 datadog-vault==4.2.0 datadog-vertica==4.5.0 +datadog-vllm==1.0.0 datadog-voltdb==3.2.1 datadog-vsphere==7.5.3 datadog-weaviate==2.3.2 diff --git a/vllm/CHANGELOG.md b/vllm/CHANGELOG.md index 64f06afdd1c01..d672e4a379fd5 100644 --- a/vllm/CHANGELOG.md +++ b/vllm/CHANGELOG.md @@ -2,3 +2,8 @@ +## 1.0.0 / 2024-07-05 + +***Added***: + +* Initial Release ([#17756](https://github.com/DataDog/integrations-core/pull/17756)) diff --git a/vllm/changelog.d/17756.added b/vllm/changelog.d/17756.added deleted file mode 100644 index aa949b47b7b41..0000000000000 --- a/vllm/changelog.d/17756.added +++ /dev/null @@ -1 +0,0 @@ -Initial Release \ No newline at end of file diff --git a/vllm/datadog_checks/vllm/__about__.py b/vllm/datadog_checks/vllm/__about__.py index e9541ce83e9e5..acbfd1c866b84 100644 --- a/vllm/datadog_checks/vllm/__about__.py +++ b/vllm/datadog_checks/vllm/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '0.0.1' +__version__ = '1.0.0' From b93c6fd18bf06a368096e095eba0da37e7a1c644 Mon Sep 17 00:00:00 2001 From: Boris Kozlov Date: Fri, 5 Jul 2024 16:01:16 +0200 Subject: [PATCH 18/68] Switch back to the intial database while collecting schemas (#17978) * Switch back to the intial database while collecting schemas * Used finally * Applied linter --- sqlserver/datadog_checks/sqlserver/schemas.py | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/sqlserver/datadog_checks/sqlserver/schemas.py b/sqlserver/datadog_checks/sqlserver/schemas.py index 8888ea7c0e0bf..8d645796ef615 100644 --- a/sqlserver/datadog_checks/sqlserver/schemas.py +++ b/sqlserver/datadog_checks/sqlserver/schemas.py @@ -193,27 +193,31 @@ def _fetch_for_databases(self): engine_edition = self._check.static_info_cache.get(STATIC_INFO_ENGINE_EDITION) with self._check.connection.open_managed_default_connection(): with self._check.connection.get_managed_cursor() as cursor: - for db_name in databases: - try: - if not is_azure_sql_database(engine_edition): - cursor.execute(SWITCH_DB_STATEMENT.format(db_name)) - self._fetch_schema_data(cursor, start_time, db_name) - except StopIteration as e: - self._log.error( - "While executing fetch schemas for databse {}, the following exception occured {}".format( - db_name, e + try: + for db_name in databases: + try: + if not is_azure_sql_database(engine_edition): + cursor.execute(SWITCH_DB_STATEMENT.format(db_name)) + self._fetch_schema_data(cursor, start_time, db_name) + except StopIteration as e: + self._log.error( + """While executing fetch schemas for databse {}, + the following exception occured {}""".format( + db_name, e + ) ) - ) - return - except Exception as e: - self._log.error( - "While executing fetch schemas for databse {}, the following exception occured {}".format( - db_name, e + break + except Exception as e: + self._log.error( + """While executing fetch schemas for databse {}, + the following exception occured {}""".format( + db_name, e + ) ) - ) - # Switch DB back to MASTER - if not is_azure_sql_database(engine_edition): - cursor.execute(SWITCH_DB_STATEMENT.format(self._check.connection.DEFAULT_DATABASE)) + finally: + # Switch DB back to MASTER + if not is_azure_sql_database(engine_edition): + cursor.execute(SWITCH_DB_STATEMENT.format(self._check.connection.DEFAULT_DATABASE)) @tracked_method(agent_check_getter=agent_check_getter) def _collect_schemas_data(self): From 611ded508ef70b72d7bbf21bb7361b309db63ff8 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Mon, 8 Jul 2024 08:12:40 +0200 Subject: [PATCH 19/68] Port 7.56 releases to master (#17991) * [Release] Bumped active_directory version to 2.1.1 * [Release] Bumped aerospike version to 2.2.2 * [Release] Bumped amazon_msk version to 4.9.0 * [Release] Bumped arangodb version to 2.2.2 * [Release] Bumped argo_rollouts version to 1.0.2 * [Release] Bumped argo_workflows version to 1.0.2 * [Release] Bumped argocd version to 2.4.2 * [Release] Bumped aspdotnet version to 2.1.1 * [Release] Bumped avi_vantage version to 4.2.2 * [Release] Bumped boundary version to 2.2.3 * [Release] Bumped calico version to 2.2.2 * [Release] Bumped cert_manager version to 4.1.2 * [Release] Bumped cilium version to 3.5.1 * [Release] Bumped cisco_aci version to 2.9.0 * [Release] Bumped clickhouse version to 3.6.0 * [Release] Bumped cockroachdb version to 3.3.2 * [Release] Bumped coredns version to 3.2.3 * [Release] Bumped datadog_checks_base version to 36.9.0 * [Release] Bumped datadog_checks_downloader version to 4.7.0 * [Release] Bumped dcgm version to 2.3.2 * [Release] Bumped dotnetclr version to 2.1.1 * [Release] Bumped envoy version to 3.5.1 * [Release] Bumped esxi version to 1.2.0 * [Release] Bumped etcd version to 6.2.2 * [Release] Bumped exchange_server version to 2.1.1 * [Release] Bumped fluxcd version to 1.2.2 * [Release] Bumped gitlab version to 7.3.2 * [Release] Bumped haproxy version to 5.2.2 * [Release] Bumped http_check version to 9.7.0 * [Release] Bumped hyperv version to 1.11.1 * [Release] Bumped iis version to 3.1.1 * [Release] Bumped impala version to 2.2.2 * [Release] Bumped istio version to 6.1.2 * [Release] Bumped kafka_consumer version to 4.5.0 * [Release] Bumped karpenter version to 1.4.1 * [Release] Bumped kong version to 3.2.2 * [Release] Bumped kubernetes_cluster_autoscaler version to 1.0.1 * [Release] Bumped linkerd version to 4.2.2 * [Release] Bumped mongo version to 6.7.0 * [Release] Bumped mysql version to 12.6.0 * [Release] Bumped nvidia_triton version to 1.2.2 * [Release] Bumped openmetrics version to 4.2.2 * [Release] Bumped postgres version to 19.0.0 * [Release] Bumped process version to 3.4.0 * [Release] Bumped pulsar version to 2.2.2 * [Release] Bumped rabbitmq version to 5.3.2 * [Release] Bumped ray version to 1.2.2 * [Release] Bumped redisdb version to 5.6.0 * [Release] Bumped scylla version to 2.7.2 * [Release] Bumped snowflake version to 5.7.0 * [Release] Bumped sqlserver version to 17.4.0 * [Release] Bumped strimzi version to 2.2.2 * [Release] Bumped tcp_check version to 4.9.0 * [Release] Bumped teamcity version to 4.3.0 * [Release] Bumped tekton version to 1.0.2 * [Release] Bumped temporal version to 2.2.2 * [Release] Bumped teradata version to 2.2.1 * [Release] Bumped tls version to 2.18.0 * [Release] Bumped torchserve version to 2.2.2 * [Release] Bumped traefik_mesh version to 1.0.1 * [Release] Bumped vault version to 4.2.1 * [Release] Bumped vsphere version to 7.6.0 * [Release] Bumped weaviate version to 2.3.3 * [Release] Bumped windows_performance_counters version to 2.1.1 * [Release] Bumped windows_service version to 4.9.1 --- active_directory/CHANGELOG.md | 6 + active_directory/changelog.d/17802.fixed | 1 - .../active_directory/__about__.py | 2 +- aerospike/CHANGELOG.md | 6 + aerospike/changelog.d/17802.fixed | 1 - .../datadog_checks/aerospike/__about__.py | 2 +- amazon_msk/CHANGELOG.md | 10 ++ amazon_msk/changelog.d/17802.fixed | 1 - amazon_msk/changelog.d/17817.added | 1 - amazon_msk/changelog.d/17953.added | 1 - .../datadog_checks/amazon_msk/__about__.py | 2 +- arangodb/CHANGELOG.md | 6 + arangodb/changelog.d/17802.fixed | 1 - arangodb/datadog_checks/arangodb/__about__.py | 2 +- argo_rollouts/CHANGELOG.md | 6 + argo_rollouts/changelog.d/17802.fixed | 1 - .../datadog_checks/argo_rollouts/__about__.py | 2 +- argo_workflows/CHANGELOG.md | 6 + argo_workflows/changelog.d/17802.fixed | 1 - .../argo_workflows/__about__.py | 2 +- argocd/CHANGELOG.md | 6 + argocd/changelog.d/17802.fixed | 1 - argocd/datadog_checks/argocd/__about__.py | 2 +- aspdotnet/CHANGELOG.md | 6 + aspdotnet/changelog.d/17802.fixed | 1 - .../datadog_checks/aspdotnet/__about__.py | 2 +- avi_vantage/CHANGELOG.md | 6 + avi_vantage/changelog.d/17802.fixed | 1 - .../datadog_checks/avi_vantage/__about__.py | 2 +- boundary/CHANGELOG.md | 6 + boundary/changelog.d/17802.fixed | 1 - boundary/datadog_checks/boundary/__about__.py | 2 +- calico/CHANGELOG.md | 6 + calico/changelog.d/17802.fixed | 1 - calico/datadog_checks/calico/__about__.py | 2 +- cert_manager/CHANGELOG.md | 6 + cert_manager/changelog.d/17802.fixed | 1 - .../datadog_checks/cert_manager/__about__.py | 2 +- cilium/CHANGELOG.md | 6 + cilium/changelog.d/17802.fixed | 1 - cilium/datadog_checks/cilium/__about__.py | 2 +- cisco_aci/CHANGELOG.md | 6 + cisco_aci/changelog.d/17817.added | 1 - .../datadog_checks/cisco_aci/__about__.py | 2 +- clickhouse/CHANGELOG.md | 6 + clickhouse/changelog.d/17817.added | 1 - .../datadog_checks/clickhouse/__about__.py | 2 +- cockroachdb/CHANGELOG.md | 6 + cockroachdb/changelog.d/17802.fixed | 1 - .../datadog_checks/cockroachdb/__about__.py | 2 +- coredns/CHANGELOG.md | 6 + coredns/changelog.d/17802.fixed | 1 - coredns/datadog_checks/coredns/__about__.py | 2 +- datadog_checks_base/CHANGELOG.md | 14 ++ .../changelog.d/17802.security | 1 - datadog_checks_base/changelog.d/17817.added | 1 - datadog_checks_base/changelog.d/17893.fixed | 1 - datadog_checks_base/changelog.d/17953.added | 1 - .../datadog_checks/base/__about__.py | 2 +- datadog_checks_downloader/CHANGELOG.md | 10 ++ .../changelog.d/17817.added | 1 - .../changelog.d/17848.security | 1 - .../datadog_checks/downloader/__about__.py | 2 +- dcgm/CHANGELOG.md | 6 + dcgm/changelog.d/17802.fixed | 1 - dcgm/datadog_checks/dcgm/__about__.py | 2 +- dotnetclr/CHANGELOG.md | 6 + dotnetclr/changelog.d/17802.fixed | 1 - .../datadog_checks/dotnetclr/__about__.py | 2 +- envoy/CHANGELOG.md | 6 + envoy/changelog.d/17802.fixed | 1 - envoy/datadog_checks/envoy/__about__.py | 2 +- esxi/CHANGELOG.md | 11 ++ esxi/changelog.d/17745.fixed | 1 - esxi/changelog.d/17919.fixed | 1 - esxi/changelog.d/17953.added | 1 - esxi/datadog_checks/esxi/__about__.py | 2 +- etcd/CHANGELOG.md | 6 + etcd/changelog.d/17878.fixed | 1 - etcd/datadog_checks/etcd/__about__.py | 2 +- exchange_server/CHANGELOG.md | 6 + exchange_server/changelog.d/17802.fixed | 1 - .../exchange_server/__about__.py | 2 +- fluxcd/CHANGELOG.md | 6 + fluxcd/changelog.d/17802.fixed | 1 - fluxcd/datadog_checks/fluxcd/__about__.py | 2 +- gitlab/CHANGELOG.md | 6 + gitlab/changelog.d/17802.fixed | 1 - gitlab/datadog_checks/gitlab/__about__.py | 2 +- haproxy/CHANGELOG.md | 6 + haproxy/changelog.d/17802.fixed | 1 - haproxy/datadog_checks/haproxy/__about__.py | 2 +- http_check/CHANGELOG.md | 6 + http_check/changelog.d/17817.added | 1 - .../datadog_checks/http_check/__about__.py | 2 +- hyperv/CHANGELOG.md | 6 + hyperv/changelog.d/17802.fixed | 1 - hyperv/datadog_checks/hyperv/__about__.py | 2 +- iis/CHANGELOG.md | 6 + iis/changelog.d/17802.fixed | 1 - iis/datadog_checks/iis/__about__.py | 2 +- impala/CHANGELOG.md | 6 + impala/changelog.d/17802.fixed | 1 - impala/datadog_checks/impala/__about__.py | 2 +- istio/CHANGELOG.md | 6 + istio/changelog.d/17802.fixed | 1 - istio/datadog_checks/istio/__about__.py | 2 +- kafka_consumer/CHANGELOG.md | 6 + kafka_consumer/changelog.d/17686.added | 1 - .../kafka_consumer/__about__.py | 2 +- karpenter/CHANGELOG.md | 6 + karpenter/changelog.d/17802.fixed | 1 - .../datadog_checks/karpenter/__about__.py | 2 +- kong/CHANGELOG.md | 6 + kong/changelog.d/17802.fixed | 1 - kong/datadog_checks/kong/__about__.py | 2 +- kubernetes_cluster_autoscaler/CHANGELOG.md | 6 + .../changelog.d/17802.fixed | 1 - .../__about__.py | 2 +- linkerd/CHANGELOG.md | 6 + linkerd/changelog.d/17802.fixed | 1 - linkerd/datadog_checks/linkerd/__about__.py | 2 +- mongo/CHANGELOG.md | 37 +++++ mongo/changelog.d/17800.added | 1 - mongo/changelog.d/17817.added | 1 - mongo/changelog.d/17829.added | 1 - mongo/changelog.d/17836.fixed | 1 - mongo/changelog.d/17840.added | 1 - mongo/changelog.d/17876.added | 1 - mongo/changelog.d/17940.added | 1 - mongo/changelog.d/17953.added | 1 - mongo/changelog.d/17959.added | 4 - mongo/changelog.d/17959.deprecated | 2 - mongo/changelog.d/17961.added | 12 -- mongo/changelog.d/17961.fixed | 1 - mongo/datadog_checks/mongo/__about__.py | 2 +- mysql/CHANGELOG.md | 12 ++ mysql/changelog.d/17817.added | 1 - mysql/changelog.d/17872.fixed | 1 - mysql/changelog.d/17873.fixed | 1 - mysql/changelog.d/17875.fixed | 1 - mysql/datadog_checks/mysql/__about__.py | 2 +- nvidia_triton/CHANGELOG.md | 6 + nvidia_triton/changelog.d/17802.fixed | 1 - .../datadog_checks/nvidia_triton/__about__.py | 2 +- openmetrics/CHANGELOG.md | 6 + openmetrics/changelog.d/17802.fixed | 1 - .../datadog_checks/openmetrics/__about__.py | 2 +- postgres/CHANGELOG.md | 20 +++ postgres/changelog.d/17802.fixed | 1 - postgres/changelog.d/17817.added | 1 - postgres/changelog.d/17862.fixed | 1 - postgres/changelog.d/17897.added | 1 - postgres/changelog.d/17903.fixed | 1 - postgres/changelog.d/17953.added | 1 - postgres/changelog.d/17960.added | 1 - postgres/changelog.d/17974.changed | 3 - postgres/datadog_checks/postgres/__about__.py | 2 +- process/CHANGELOG.md | 6 + process/changelog.d/17817.added | 1 - process/datadog_checks/process/__about__.py | 2 +- pulsar/CHANGELOG.md | 6 + pulsar/changelog.d/17802.fixed | 1 - pulsar/datadog_checks/pulsar/__about__.py | 2 +- rabbitmq/CHANGELOG.md | 6 + rabbitmq/changelog.d/17802.fixed | 1 - rabbitmq/datadog_checks/rabbitmq/__about__.py | 2 +- ray/CHANGELOG.md | 6 + ray/changelog.d/17802.fixed | 1 - ray/datadog_checks/ray/__about__.py | 2 +- redisdb/CHANGELOG.md | 6 + redisdb/changelog.d/17817.added | 1 - redisdb/changelog.d/17953.added | 1 - redisdb/datadog_checks/redisdb/__about__.py | 2 +- requirements-agent-release.txt | 130 +++++++++--------- scylla/CHANGELOG.md | 6 + scylla/changelog.d/17802.fixed | 1 - scylla/datadog_checks/scylla/__about__.py | 2 +- snowflake/CHANGELOG.md | 6 + snowflake/changelog.d/17817.added | 1 - .../datadog_checks/snowflake/__about__.py | 2 +- sqlserver/CHANGELOG.md | 18 +++ sqlserver/changelog.d/17258.added | 2 - sqlserver/changelog.d/17717.fixed | 1 - sqlserver/changelog.d/17729.added | 1 - sqlserver/changelog.d/17750.fixed | 1 - sqlserver/changelog.d/17765.added | 1 - sqlserver/changelog.d/17775.fixed | 1 - sqlserver/changelog.d/17817.added | 1 - sqlserver/changelog.d/17862.fixed | 1 - sqlserver/changelog.d/17933.fixed | 1 - .../datadog_checks/sqlserver/__about__.py | 2 +- strimzi/CHANGELOG.md | 6 + strimzi/changelog.d/17802.fixed | 1 - strimzi/datadog_checks/strimzi/__about__.py | 2 +- tcp_check/CHANGELOG.md | 6 + tcp_check/changelog.d/17912.added | 1 - .../datadog_checks/tcp_check/__about__.py | 2 +- teamcity/CHANGELOG.md | 10 ++ teamcity/changelog.d/17695.added | 1 - teamcity/changelog.d/17802.fixed | 1 - teamcity/datadog_checks/teamcity/__about__.py | 2 +- tekton/CHANGELOG.md | 6 + tekton/changelog.d/17802.fixed | 1 - tekton/datadog_checks/tekton/__about__.py | 2 +- temporal/CHANGELOG.md | 6 + temporal/changelog.d/17802.fixed | 1 - temporal/datadog_checks/temporal/__about__.py | 2 +- teradata/CHANGELOG.md | 6 + teradata/changelog.d/17802.fixed | 1 - teradata/datadog_checks/teradata/__about__.py | 2 +- tls/CHANGELOG.md | 6 + tls/changelog.d/17817.added | 1 - tls/datadog_checks/tls/__about__.py | 2 +- torchserve/CHANGELOG.md | 6 + torchserve/changelog.d/17802.fixed | 1 - .../datadog_checks/torchserve/__about__.py | 2 +- traefik_mesh/CHANGELOG.md | 6 + traefik_mesh/changelog.d/17802.fixed | 1 - .../datadog_checks/traefik_mesh/__about__.py | 2 +- vault/CHANGELOG.md | 6 + vault/changelog.d/17802.fixed | 1 - vault/datadog_checks/vault/__about__.py | 2 +- vsphere/CHANGELOG.md | 8 ++ vsphere/changelog.d/17855.added | 1 - vsphere/changelog.d/17917.added | 1 - vsphere/changelog.d/17953.added | 1 - vsphere/datadog_checks/vsphere/__about__.py | 2 +- weaviate/CHANGELOG.md | 6 + weaviate/changelog.d/17802.fixed | 1 - weaviate/datadog_checks/weaviate/__about__.py | 2 +- windows_performance_counters/CHANGELOG.md | 6 + .../changelog.d/17802.fixed | 1 - .../windows_performance_counters/__about__.py | 2 +- windows_service/CHANGELOG.md | 6 + windows_service/changelog.d/17749.fixed | 1 - .../windows_service/__about__.py | 2 +- 237 files changed, 610 insertions(+), 254 deletions(-) delete mode 100644 active_directory/changelog.d/17802.fixed delete mode 100644 aerospike/changelog.d/17802.fixed delete mode 100644 amazon_msk/changelog.d/17802.fixed delete mode 100644 amazon_msk/changelog.d/17817.added delete mode 100644 amazon_msk/changelog.d/17953.added delete mode 100644 arangodb/changelog.d/17802.fixed delete mode 100644 argo_rollouts/changelog.d/17802.fixed delete mode 100644 argo_workflows/changelog.d/17802.fixed delete mode 100644 argocd/changelog.d/17802.fixed delete mode 100644 aspdotnet/changelog.d/17802.fixed delete mode 100644 avi_vantage/changelog.d/17802.fixed delete mode 100644 boundary/changelog.d/17802.fixed delete mode 100644 calico/changelog.d/17802.fixed delete mode 100644 cert_manager/changelog.d/17802.fixed delete mode 100644 cilium/changelog.d/17802.fixed delete mode 100644 cisco_aci/changelog.d/17817.added delete mode 100644 clickhouse/changelog.d/17817.added delete mode 100644 cockroachdb/changelog.d/17802.fixed delete mode 100644 coredns/changelog.d/17802.fixed delete mode 100644 datadog_checks_base/changelog.d/17802.security delete mode 100644 datadog_checks_base/changelog.d/17817.added delete mode 100644 datadog_checks_base/changelog.d/17893.fixed delete mode 100644 datadog_checks_base/changelog.d/17953.added delete mode 100644 datadog_checks_downloader/changelog.d/17817.added delete mode 100644 datadog_checks_downloader/changelog.d/17848.security delete mode 100644 dcgm/changelog.d/17802.fixed delete mode 100644 dotnetclr/changelog.d/17802.fixed delete mode 100644 envoy/changelog.d/17802.fixed delete mode 100644 esxi/changelog.d/17745.fixed delete mode 100644 esxi/changelog.d/17919.fixed delete mode 100644 esxi/changelog.d/17953.added delete mode 100644 etcd/changelog.d/17878.fixed delete mode 100644 exchange_server/changelog.d/17802.fixed delete mode 100644 fluxcd/changelog.d/17802.fixed delete mode 100644 gitlab/changelog.d/17802.fixed delete mode 100644 haproxy/changelog.d/17802.fixed delete mode 100644 http_check/changelog.d/17817.added delete mode 100644 hyperv/changelog.d/17802.fixed delete mode 100644 iis/changelog.d/17802.fixed delete mode 100644 impala/changelog.d/17802.fixed delete mode 100644 istio/changelog.d/17802.fixed delete mode 100644 kafka_consumer/changelog.d/17686.added delete mode 100644 karpenter/changelog.d/17802.fixed delete mode 100644 kong/changelog.d/17802.fixed delete mode 100644 kubernetes_cluster_autoscaler/changelog.d/17802.fixed delete mode 100644 linkerd/changelog.d/17802.fixed delete mode 100644 mongo/changelog.d/17800.added delete mode 100644 mongo/changelog.d/17817.added delete mode 100644 mongo/changelog.d/17829.added delete mode 100644 mongo/changelog.d/17836.fixed delete mode 100644 mongo/changelog.d/17840.added delete mode 100644 mongo/changelog.d/17876.added delete mode 100644 mongo/changelog.d/17940.added delete mode 100644 mongo/changelog.d/17953.added delete mode 100644 mongo/changelog.d/17959.added delete mode 100644 mongo/changelog.d/17959.deprecated delete mode 100644 mongo/changelog.d/17961.added delete mode 100644 mongo/changelog.d/17961.fixed delete mode 100644 mysql/changelog.d/17817.added delete mode 100644 mysql/changelog.d/17872.fixed delete mode 100644 mysql/changelog.d/17873.fixed delete mode 100644 mysql/changelog.d/17875.fixed delete mode 100644 nvidia_triton/changelog.d/17802.fixed delete mode 100644 openmetrics/changelog.d/17802.fixed delete mode 100644 postgres/changelog.d/17802.fixed delete mode 100644 postgres/changelog.d/17817.added delete mode 100644 postgres/changelog.d/17862.fixed delete mode 100644 postgres/changelog.d/17897.added delete mode 100644 postgres/changelog.d/17903.fixed delete mode 100644 postgres/changelog.d/17953.added delete mode 100644 postgres/changelog.d/17960.added delete mode 100644 postgres/changelog.d/17974.changed delete mode 100644 process/changelog.d/17817.added delete mode 100644 pulsar/changelog.d/17802.fixed delete mode 100644 rabbitmq/changelog.d/17802.fixed delete mode 100644 ray/changelog.d/17802.fixed delete mode 100644 redisdb/changelog.d/17817.added delete mode 100644 redisdb/changelog.d/17953.added delete mode 100644 scylla/changelog.d/17802.fixed delete mode 100644 snowflake/changelog.d/17817.added delete mode 100644 sqlserver/changelog.d/17258.added delete mode 100644 sqlserver/changelog.d/17717.fixed delete mode 100644 sqlserver/changelog.d/17729.added delete mode 100644 sqlserver/changelog.d/17750.fixed delete mode 100644 sqlserver/changelog.d/17765.added delete mode 100644 sqlserver/changelog.d/17775.fixed delete mode 100644 sqlserver/changelog.d/17817.added delete mode 100644 sqlserver/changelog.d/17862.fixed delete mode 100644 sqlserver/changelog.d/17933.fixed delete mode 100644 strimzi/changelog.d/17802.fixed delete mode 100644 tcp_check/changelog.d/17912.added delete mode 100644 teamcity/changelog.d/17695.added delete mode 100644 teamcity/changelog.d/17802.fixed delete mode 100644 tekton/changelog.d/17802.fixed delete mode 100644 temporal/changelog.d/17802.fixed delete mode 100644 teradata/changelog.d/17802.fixed delete mode 100644 tls/changelog.d/17817.added delete mode 100644 torchserve/changelog.d/17802.fixed delete mode 100644 traefik_mesh/changelog.d/17802.fixed delete mode 100644 vault/changelog.d/17802.fixed delete mode 100644 vsphere/changelog.d/17855.added delete mode 100644 vsphere/changelog.d/17917.added delete mode 100644 vsphere/changelog.d/17953.added delete mode 100644 weaviate/changelog.d/17802.fixed delete mode 100644 windows_performance_counters/changelog.d/17802.fixed delete mode 100644 windows_service/changelog.d/17749.fixed diff --git a/active_directory/CHANGELOG.md b/active_directory/CHANGELOG.md index 42f390eafb7eb..ba6c7abe547b0 100644 --- a/active_directory/CHANGELOG.md +++ b/active_directory/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.1.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/active_directory/changelog.d/17802.fixed b/active_directory/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/active_directory/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/active_directory/datadog_checks/active_directory/__about__.py b/active_directory/datadog_checks/active_directory/__about__.py index 17d27698b7b85..287bbeba260f7 100644 --- a/active_directory/datadog_checks/active_directory/__about__.py +++ b/active_directory/datadog_checks/active_directory/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.0' +__version__ = '2.1.1' diff --git a/aerospike/CHANGELOG.md b/aerospike/CHANGELOG.md index 18edd92f579fc..32f1ff802259e 100644 --- a/aerospike/CHANGELOG.md +++ b/aerospike/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.1 / 2024-05-31 ***Fixed***: diff --git a/aerospike/changelog.d/17802.fixed b/aerospike/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/aerospike/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/aerospike/datadog_checks/aerospike/__about__.py b/aerospike/datadog_checks/aerospike/__about__.py index 7a56729785d1b..9313b336284cd 100644 --- a/aerospike/datadog_checks/aerospike/__about__.py +++ b/aerospike/datadog_checks/aerospike/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '2.2.2' diff --git a/amazon_msk/CHANGELOG.md b/amazon_msk/CHANGELOG.md index e44d0c82723bd..1e2c74d6bcfb8 100644 --- a/amazon_msk/CHANGELOG.md +++ b/amazon_msk/CHANGELOG.md @@ -2,6 +2,16 @@ +## 4.9.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)), ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 4.8.0 / 2024-05-31 ***Added***: diff --git a/amazon_msk/changelog.d/17802.fixed b/amazon_msk/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/amazon_msk/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/amazon_msk/changelog.d/17817.added b/amazon_msk/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/amazon_msk/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/amazon_msk/changelog.d/17953.added b/amazon_msk/changelog.d/17953.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/amazon_msk/changelog.d/17953.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/amazon_msk/datadog_checks/amazon_msk/__about__.py b/amazon_msk/datadog_checks/amazon_msk/__about__.py index f77b4203b9bea..705e94aaf9845 100644 --- a/amazon_msk/datadog_checks/amazon_msk/__about__.py +++ b/amazon_msk/datadog_checks/amazon_msk/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.8.0' +__version__ = '4.9.0' diff --git a/arangodb/CHANGELOG.md b/arangodb/CHANGELOG.md index 46788c871f5c7..66cd3904766cd 100644 --- a/arangodb/CHANGELOG.md +++ b/arangodb/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.1 / 2024-05-31 ***Fixed***: diff --git a/arangodb/changelog.d/17802.fixed b/arangodb/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/arangodb/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/arangodb/datadog_checks/arangodb/__about__.py b/arangodb/datadog_checks/arangodb/__about__.py index ba014f7154f24..faa7c19604967 100644 --- a/arangodb/datadog_checks/arangodb/__about__.py +++ b/arangodb/datadog_checks/arangodb/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '2.2.2' diff --git a/argo_rollouts/CHANGELOG.md b/argo_rollouts/CHANGELOG.md index 402f5750d4beb..16233c8fb971e 100644 --- a/argo_rollouts/CHANGELOG.md +++ b/argo_rollouts/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.0.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.0.1 / 2024-05-31 ***Fixed***: diff --git a/argo_rollouts/changelog.d/17802.fixed b/argo_rollouts/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/argo_rollouts/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/argo_rollouts/datadog_checks/argo_rollouts/__about__.py b/argo_rollouts/datadog_checks/argo_rollouts/__about__.py index e0db4e56d553f..1436e0ab91c45 100644 --- a/argo_rollouts/datadog_checks/argo_rollouts/__about__.py +++ b/argo_rollouts/datadog_checks/argo_rollouts/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.1' +__version__ = '1.0.2' diff --git a/argo_workflows/CHANGELOG.md b/argo_workflows/CHANGELOG.md index 330cca524bc59..27b8c70071edc 100644 --- a/argo_workflows/CHANGELOG.md +++ b/argo_workflows/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.0.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.0.1 / 2024-05-31 ***Fixed***: diff --git a/argo_workflows/changelog.d/17802.fixed b/argo_workflows/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/argo_workflows/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/argo_workflows/datadog_checks/argo_workflows/__about__.py b/argo_workflows/datadog_checks/argo_workflows/__about__.py index e0db4e56d553f..1436e0ab91c45 100644 --- a/argo_workflows/datadog_checks/argo_workflows/__about__.py +++ b/argo_workflows/datadog_checks/argo_workflows/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.1' +__version__ = '1.0.2' diff --git a/argocd/CHANGELOG.md b/argocd/CHANGELOG.md index bc6bfc74a2104..516224d5a961d 100644 --- a/argocd/CHANGELOG.md +++ b/argocd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.4.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.4.1 / 2024-05-31 ***Fixed***: diff --git a/argocd/changelog.d/17802.fixed b/argocd/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/argocd/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/argocd/datadog_checks/argocd/__about__.py b/argocd/datadog_checks/argocd/__about__.py index 20aeb58ba25be..6a54c9cbee03d 100644 --- a/argocd/datadog_checks/argocd/__about__.py +++ b/argocd/datadog_checks/argocd/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.4.1' +__version__ = '2.4.2' diff --git a/aspdotnet/CHANGELOG.md b/aspdotnet/CHANGELOG.md index 137db4886400b..2281f65904532 100644 --- a/aspdotnet/CHANGELOG.md +++ b/aspdotnet/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.1.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/aspdotnet/changelog.d/17802.fixed b/aspdotnet/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/aspdotnet/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/aspdotnet/datadog_checks/aspdotnet/__about__.py b/aspdotnet/datadog_checks/aspdotnet/__about__.py index 17d27698b7b85..287bbeba260f7 100644 --- a/aspdotnet/datadog_checks/aspdotnet/__about__.py +++ b/aspdotnet/datadog_checks/aspdotnet/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.0' +__version__ = '2.1.1' diff --git a/avi_vantage/CHANGELOG.md b/avi_vantage/CHANGELOG.md index d82775ac91057..a4ff677e86a5a 100644 --- a/avi_vantage/CHANGELOG.md +++ b/avi_vantage/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 4.2.1 / 2024-05-31 ***Fixed***: diff --git a/avi_vantage/changelog.d/17802.fixed b/avi_vantage/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/avi_vantage/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/avi_vantage/datadog_checks/avi_vantage/__about__.py b/avi_vantage/datadog_checks/avi_vantage/__about__.py index 196d232e60ce7..6b0871e8b251e 100644 --- a/avi_vantage/datadog_checks/avi_vantage/__about__.py +++ b/avi_vantage/datadog_checks/avi_vantage/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.1' +__version__ = '4.2.2' diff --git a/boundary/CHANGELOG.md b/boundary/CHANGELOG.md index a37c51368bc06..f84d17fc2e464 100644 --- a/boundary/CHANGELOG.md +++ b/boundary/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.3 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.2 / 2024-05-31 ***Fixed***: diff --git a/boundary/changelog.d/17802.fixed b/boundary/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/boundary/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/boundary/datadog_checks/boundary/__about__.py b/boundary/datadog_checks/boundary/__about__.py index faa7c19604967..d5eaec6126497 100644 --- a/boundary/datadog_checks/boundary/__about__.py +++ b/boundary/datadog_checks/boundary/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '2.2.3' diff --git a/calico/CHANGELOG.md b/calico/CHANGELOG.md index 517f239779ec5..7ec41e9e56555 100644 --- a/calico/CHANGELOG.md +++ b/calico/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.1 / 2024-05-31 ***Fixed***: diff --git a/calico/changelog.d/17802.fixed b/calico/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/calico/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/calico/datadog_checks/calico/__about__.py b/calico/datadog_checks/calico/__about__.py index 37a5c2c58284d..6e0db56600f4f 100644 --- a/calico/datadog_checks/calico/__about__.py +++ b/calico/datadog_checks/calico/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '2.2.2' diff --git a/cert_manager/CHANGELOG.md b/cert_manager/CHANGELOG.md index 83588ae633f9d..cebf4139db528 100644 --- a/cert_manager/CHANGELOG.md +++ b/cert_manager/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.1.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 4.1.1 / 2024-05-31 ***Fixed***: diff --git a/cert_manager/changelog.d/17802.fixed b/cert_manager/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/cert_manager/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/cert_manager/datadog_checks/cert_manager/__about__.py b/cert_manager/datadog_checks/cert_manager/__about__.py index 58b42de064f21..81e293349b2dd 100644 --- a/cert_manager/datadog_checks/cert_manager/__about__.py +++ b/cert_manager/datadog_checks/cert_manager/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.1.1' +__version__ = '4.1.2' diff --git a/cilium/CHANGELOG.md b/cilium/CHANGELOG.md index 59c6efd0f31b2..cb81a417ec8df 100644 --- a/cilium/CHANGELOG.md +++ b/cilium/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.5.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 3.5.0 / 2024-05-31 ***Added***: diff --git a/cilium/changelog.d/17802.fixed b/cilium/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/cilium/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/cilium/datadog_checks/cilium/__about__.py b/cilium/datadog_checks/cilium/__about__.py index 27b20337a1d1f..e82b530c3a791 100644 --- a/cilium/datadog_checks/cilium/__about__.py +++ b/cilium/datadog_checks/cilium/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.5.0' +__version__ = '3.5.1' diff --git a/cisco_aci/CHANGELOG.md b/cisco_aci/CHANGELOG.md index 339c7a4512b07..13400f3e1d18a 100644 --- a/cisco_aci/CHANGELOG.md +++ b/cisco_aci/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.9.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + ## 2.8.0 / 2024-05-31 ***Added***: diff --git a/cisco_aci/changelog.d/17817.added b/cisco_aci/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/cisco_aci/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/cisco_aci/datadog_checks/cisco_aci/__about__.py b/cisco_aci/datadog_checks/cisco_aci/__about__.py index 3c126fbbe2987..8e7e0691df6d1 100644 --- a/cisco_aci/datadog_checks/cisco_aci/__about__.py +++ b/cisco_aci/datadog_checks/cisco_aci/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.8.0" +__version__ = "2.9.0" diff --git a/clickhouse/CHANGELOG.md b/clickhouse/CHANGELOG.md index 24b1cff24e16b..fff15e5fb4e77 100644 --- a/clickhouse/CHANGELOG.md +++ b/clickhouse/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.6.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + ## 3.5.0 / 2024-04-26 / Agent 7.54.0 ***Added***: diff --git a/clickhouse/changelog.d/17817.added b/clickhouse/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/clickhouse/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/clickhouse/datadog_checks/clickhouse/__about__.py b/clickhouse/datadog_checks/clickhouse/__about__.py index 27b20337a1d1f..6cea03bf6a176 100644 --- a/clickhouse/datadog_checks/clickhouse/__about__.py +++ b/clickhouse/datadog_checks/clickhouse/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.5.0' +__version__ = '3.6.0' diff --git a/cockroachdb/CHANGELOG.md b/cockroachdb/CHANGELOG.md index b8690914e34b2..e910af1586645 100644 --- a/cockroachdb/CHANGELOG.md +++ b/cockroachdb/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.3.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 3.3.1 / 2024-05-31 ***Fixed***: diff --git a/cockroachdb/changelog.d/17802.fixed b/cockroachdb/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/cockroachdb/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/cockroachdb/datadog_checks/cockroachdb/__about__.py b/cockroachdb/datadog_checks/cockroachdb/__about__.py index acfda3e4c6881..18b1f968f9fa2 100644 --- a/cockroachdb/datadog_checks/cockroachdb/__about__.py +++ b/cockroachdb/datadog_checks/cockroachdb/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.1' +__version__ = '3.3.2' diff --git a/coredns/CHANGELOG.md b/coredns/CHANGELOG.md index 6cc302c0f2c06..7b1caab76161a 100644 --- a/coredns/CHANGELOG.md +++ b/coredns/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.2.3 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 3.2.2 / 2024-05-31 ***Fixed***: diff --git a/coredns/changelog.d/17802.fixed b/coredns/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/coredns/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/coredns/datadog_checks/coredns/__about__.py b/coredns/datadog_checks/coredns/__about__.py index e5456b9ec95ef..3200ed866fecd 100644 --- a/coredns/datadog_checks/coredns/__about__.py +++ b/coredns/datadog_checks/coredns/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.2' +__version__ = '3.2.3' diff --git a/datadog_checks_base/CHANGELOG.md b/datadog_checks_base/CHANGELOG.md index 3d6f3734b3cea..887cf8ad96d08 100644 --- a/datadog_checks_base/CHANGELOG.md +++ b/datadog_checks_base/CHANGELOG.md @@ -2,6 +2,20 @@ +## 36.9.0 / 2024-07-05 + +***Security***: + +* Update pydantic to 2.7.3 to address CVE-2024-3772 ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)), ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) + +***Fixed***: + +* Fix rate limiter in sync mode of DBMAsync job. Prior to this change, the DBMAsync job would not take into account the time of the job execution when throttling by the collection interval. ([#17893](https://github.com/DataDog/integrations-core/pull/17893)) + ## 36.8.0 / 2024-06-13 ***Added***: diff --git a/datadog_checks_base/changelog.d/17802.security b/datadog_checks_base/changelog.d/17802.security deleted file mode 100644 index 82264061fd919..0000000000000 --- a/datadog_checks_base/changelog.d/17802.security +++ /dev/null @@ -1 +0,0 @@ -Update pydantic to 2.7.3 to address CVE-2024-3772 diff --git a/datadog_checks_base/changelog.d/17817.added b/datadog_checks_base/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/datadog_checks_base/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/datadog_checks_base/changelog.d/17893.fixed b/datadog_checks_base/changelog.d/17893.fixed deleted file mode 100644 index 9f5e21931ca44..0000000000000 --- a/datadog_checks_base/changelog.d/17893.fixed +++ /dev/null @@ -1 +0,0 @@ -Fix rate limiter in sync mode of DBMAsync job. Prior to this change, the DBMAsync job would not take into account the time of the job execution when throttling by the collection interval. diff --git a/datadog_checks_base/changelog.d/17953.added b/datadog_checks_base/changelog.d/17953.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/datadog_checks_base/changelog.d/17953.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/datadog_checks_base/datadog_checks/base/__about__.py b/datadog_checks_base/datadog_checks/base/__about__.py index bc267e3da15ed..ea8fd3f16e17a 100644 --- a/datadog_checks_base/datadog_checks/base/__about__.py +++ b/datadog_checks_base/datadog_checks/base/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "36.8.0" +__version__ = "36.9.0" diff --git a/datadog_checks_downloader/CHANGELOG.md b/datadog_checks_downloader/CHANGELOG.md index c8896da9e2e14..6c42a5ee3d46a 100644 --- a/datadog_checks_downloader/CHANGELOG.md +++ b/datadog_checks_downloader/CHANGELOG.md @@ -2,6 +2,16 @@ +## 4.7.0 / 2024-07-05 + +***Security***: + +* Bump TUF dependency to address GHSA-77hh-43cm-v8j6 ([#17848](https://github.com/DataDog/integrations-core/pull/17848)) + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + ## 4.6.0 / 2024-04-26 / Agent 7.54.0 ***Added***: diff --git a/datadog_checks_downloader/changelog.d/17817.added b/datadog_checks_downloader/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/datadog_checks_downloader/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/datadog_checks_downloader/changelog.d/17848.security b/datadog_checks_downloader/changelog.d/17848.security deleted file mode 100644 index 8e1ae4b1122e2..0000000000000 --- a/datadog_checks_downloader/changelog.d/17848.security +++ /dev/null @@ -1 +0,0 @@ -Bump TUF dependency to address GHSA-77hh-43cm-v8j6 \ No newline at end of file diff --git a/datadog_checks_downloader/datadog_checks/downloader/__about__.py b/datadog_checks_downloader/datadog_checks/downloader/__about__.py index 0f817487f8aa1..ba8c98a598596 100644 --- a/datadog_checks_downloader/datadog_checks/downloader/__about__.py +++ b/datadog_checks_downloader/datadog_checks/downloader/__about__.py @@ -4,4 +4,4 @@ # NOTE: tie datadog-checks-downloader to v2 of our software supply chain: # https://github.com/DataDog/integrations-core/blob/6388602b6deb3b65b62cf7cda69dc20d99dede29/datadog_checks_downloader/datadog_checks/downloader/download.py#L51 -__version__ = "4.6.0" +__version__ = "4.7.0" diff --git a/dcgm/CHANGELOG.md b/dcgm/CHANGELOG.md index 64167c3fd98d0..881cd14cc4bdd 100644 --- a/dcgm/CHANGELOG.md +++ b/dcgm/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.3.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.3.1 / 2024-05-31 ***Fixed***: diff --git a/dcgm/changelog.d/17802.fixed b/dcgm/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/dcgm/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/dcgm/datadog_checks/dcgm/__about__.py b/dcgm/datadog_checks/dcgm/__about__.py index 21dc83391ae22..3a4912c5dcc6a 100644 --- a/dcgm/datadog_checks/dcgm/__about__.py +++ b/dcgm/datadog_checks/dcgm/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.3.1' +__version__ = '2.3.2' diff --git a/dotnetclr/CHANGELOG.md b/dotnetclr/CHANGELOG.md index 955849e437b7e..657319e1deb7d 100644 --- a/dotnetclr/CHANGELOG.md +++ b/dotnetclr/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.1.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/dotnetclr/changelog.d/17802.fixed b/dotnetclr/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/dotnetclr/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/dotnetclr/datadog_checks/dotnetclr/__about__.py b/dotnetclr/datadog_checks/dotnetclr/__about__.py index 17d27698b7b85..287bbeba260f7 100644 --- a/dotnetclr/datadog_checks/dotnetclr/__about__.py +++ b/dotnetclr/datadog_checks/dotnetclr/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.0' +__version__ = '2.1.1' diff --git a/envoy/CHANGELOG.md b/envoy/CHANGELOG.md index 2cf79e1a2c86c..2c496c498a554 100644 --- a/envoy/CHANGELOG.md +++ b/envoy/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.5.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 3.5.0 / 2024-05-31 ***Added***: diff --git a/envoy/changelog.d/17802.fixed b/envoy/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/envoy/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/envoy/datadog_checks/envoy/__about__.py b/envoy/datadog_checks/envoy/__about__.py index 9408b91db984c..75ab58350594a 100644 --- a/envoy/datadog_checks/envoy/__about__.py +++ b/envoy/datadog_checks/envoy/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.5.0' +__version__ = '3.5.1' diff --git a/esxi/CHANGELOG.md b/esxi/CHANGELOG.md index dbaeed6b594a3..c8f56c5c2cb8a 100644 --- a/esxi/CHANGELOG.md +++ b/esxi/CHANGELOG.md @@ -2,6 +2,17 @@ +## 1.2.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) + +***Fixed***: + +* Properly submit percent metrics ([#17745](https://github.com/DataDog/integrations-core/pull/17745)) +* Maintain a long lived connection to ESXi host. ([#17919](https://github.com/DataDog/integrations-core/pull/17919)) + ## 1.1.0 / 2024-05-31 ***Added***: diff --git a/esxi/changelog.d/17745.fixed b/esxi/changelog.d/17745.fixed deleted file mode 100644 index e59b1bc4185af..0000000000000 --- a/esxi/changelog.d/17745.fixed +++ /dev/null @@ -1 +0,0 @@ -Properly submit percent metrics \ No newline at end of file diff --git a/esxi/changelog.d/17919.fixed b/esxi/changelog.d/17919.fixed deleted file mode 100644 index 1cb567d4aacc8..0000000000000 --- a/esxi/changelog.d/17919.fixed +++ /dev/null @@ -1 +0,0 @@ -Maintain a long lived connection to ESXi host. \ No newline at end of file diff --git a/esxi/changelog.d/17953.added b/esxi/changelog.d/17953.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/esxi/changelog.d/17953.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/esxi/datadog_checks/esxi/__about__.py b/esxi/datadog_checks/esxi/__about__.py index 3107e4c7e8bc8..7addefff57a28 100644 --- a/esxi/datadog_checks/esxi/__about__.py +++ b/esxi/datadog_checks/esxi/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.1.0' +__version__ = '1.2.0' diff --git a/etcd/CHANGELOG.md b/etcd/CHANGELOG.md index ef4f6485e5390..f46b3a6f29c76 100644 --- a/etcd/CHANGELOG.md +++ b/etcd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.2.2 / 2024-07-05 + +***Fixed***: + +* Fix prometheus entry ([#17878](https://github.com/DataDog/integrations-core/pull/17878)) + ## 6.2.1 / 2024-05-31 ***Fixed***: diff --git a/etcd/changelog.d/17878.fixed b/etcd/changelog.d/17878.fixed deleted file mode 100644 index 30ea73cb43911..0000000000000 --- a/etcd/changelog.d/17878.fixed +++ /dev/null @@ -1 +0,0 @@ -Fix prometheus entry \ No newline at end of file diff --git a/etcd/datadog_checks/etcd/__about__.py b/etcd/datadog_checks/etcd/__about__.py index 960ef3efedd2d..89de12a9bb8c0 100644 --- a/etcd/datadog_checks/etcd/__about__.py +++ b/etcd/datadog_checks/etcd/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '6.2.1' +__version__ = '6.2.2' diff --git a/exchange_server/CHANGELOG.md b/exchange_server/CHANGELOG.md index a321b35f374ca..83342e0c06d76 100644 --- a/exchange_server/CHANGELOG.md +++ b/exchange_server/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.1.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/exchange_server/changelog.d/17802.fixed b/exchange_server/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/exchange_server/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/exchange_server/datadog_checks/exchange_server/__about__.py b/exchange_server/datadog_checks/exchange_server/__about__.py index 17d27698b7b85..287bbeba260f7 100644 --- a/exchange_server/datadog_checks/exchange_server/__about__.py +++ b/exchange_server/datadog_checks/exchange_server/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.0' +__version__ = '2.1.1' diff --git a/fluxcd/CHANGELOG.md b/fluxcd/CHANGELOG.md index 91a6a15d43731..9bb40820c6fc6 100644 --- a/fluxcd/CHANGELOG.md +++ b/fluxcd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.2.1 / 2024-05-31 ***Fixed***: diff --git a/fluxcd/changelog.d/17802.fixed b/fluxcd/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/fluxcd/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/fluxcd/datadog_checks/fluxcd/__about__.py b/fluxcd/datadog_checks/fluxcd/__about__.py index 4bbc6390a4937..db97e440a2426 100644 --- a/fluxcd/datadog_checks/fluxcd/__about__.py +++ b/fluxcd/datadog_checks/fluxcd/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "1.2.1" +__version__ = "1.2.2" diff --git a/gitlab/CHANGELOG.md b/gitlab/CHANGELOG.md index db4d510d3e09b..4479d76ffe33d 100644 --- a/gitlab/CHANGELOG.md +++ b/gitlab/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.3.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 7.3.1 / 2024-05-31 ***Fixed***: diff --git a/gitlab/changelog.d/17802.fixed b/gitlab/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/gitlab/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/gitlab/datadog_checks/gitlab/__about__.py b/gitlab/datadog_checks/gitlab/__about__.py index eead354b21051..e9b59d1d59c2d 100644 --- a/gitlab/datadog_checks/gitlab/__about__.py +++ b/gitlab/datadog_checks/gitlab/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '7.3.1' +__version__ = '7.3.2' diff --git a/haproxy/CHANGELOG.md b/haproxy/CHANGELOG.md index d610ae9faabc0..282a2b6bb71b6 100644 --- a/haproxy/CHANGELOG.md +++ b/haproxy/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 5.2.1 / 2024-05-31 ***Fixed***: diff --git a/haproxy/changelog.d/17802.fixed b/haproxy/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/haproxy/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/haproxy/datadog_checks/haproxy/__about__.py b/haproxy/datadog_checks/haproxy/__about__.py index 65b6185739592..83ff1f1dd4e11 100644 --- a/haproxy/datadog_checks/haproxy/__about__.py +++ b/haproxy/datadog_checks/haproxy/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "5.2.1" +__version__ = "5.2.2" diff --git a/http_check/CHANGELOG.md b/http_check/CHANGELOG.md index 52a0bc45aca05..b92776972ce4b 100644 --- a/http_check/CHANGELOG.md +++ b/http_check/CHANGELOG.md @@ -2,6 +2,12 @@ +## 9.7.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + ## 9.6.0 / 2024-05-31 ***Added***: diff --git a/http_check/changelog.d/17817.added b/http_check/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/http_check/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/http_check/datadog_checks/http_check/__about__.py b/http_check/datadog_checks/http_check/__about__.py index 21e4b75820a3e..a256b1fc0f26a 100644 --- a/http_check/datadog_checks/http_check/__about__.py +++ b/http_check/datadog_checks/http_check/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "9.6.0" +__version__ = "9.7.0" diff --git a/hyperv/CHANGELOG.md b/hyperv/CHANGELOG.md index b834b02fdd4c5..3e52ed973a704 100644 --- a/hyperv/CHANGELOG.md +++ b/hyperv/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.11.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.11.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/hyperv/changelog.d/17802.fixed b/hyperv/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/hyperv/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/hyperv/datadog_checks/hyperv/__about__.py b/hyperv/datadog_checks/hyperv/__about__.py index 6a2a8fa33f93e..d0b98712e9abc 100644 --- a/hyperv/datadog_checks/hyperv/__about__.py +++ b/hyperv/datadog_checks/hyperv/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.11.0' +__version__ = '1.11.1' diff --git a/iis/CHANGELOG.md b/iis/CHANGELOG.md index a67d68331e123..cc30cdc6f2fe5 100644 --- a/iis/CHANGELOG.md +++ b/iis/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.1.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 3.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/iis/changelog.d/17802.fixed b/iis/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/iis/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/iis/datadog_checks/iis/__about__.py b/iis/datadog_checks/iis/__about__.py index 6ff863c1fc552..ddb3387b0e4db 100644 --- a/iis/datadog_checks/iis/__about__.py +++ b/iis/datadog_checks/iis/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.1.0' +__version__ = '3.1.1' diff --git a/impala/CHANGELOG.md b/impala/CHANGELOG.md index ade007563b83a..c4a532aec303e 100644 --- a/impala/CHANGELOG.md +++ b/impala/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.1 / 2024-05-31 ***Fixed***: diff --git a/impala/changelog.d/17802.fixed b/impala/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/impala/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/impala/datadog_checks/impala/__about__.py b/impala/datadog_checks/impala/__about__.py index ba014f7154f24..faa7c19604967 100644 --- a/impala/datadog_checks/impala/__about__.py +++ b/impala/datadog_checks/impala/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '2.2.2' diff --git a/istio/CHANGELOG.md b/istio/CHANGELOG.md index 97e6c723fb175..c2657c4043c28 100644 --- a/istio/CHANGELOG.md +++ b/istio/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.1.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 6.1.1 / 2024-05-31 ***Fixed***: diff --git a/istio/changelog.d/17802.fixed b/istio/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/istio/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/istio/datadog_checks/istio/__about__.py b/istio/datadog_checks/istio/__about__.py index bffa6574a0e5c..16db6bfd0b240 100644 --- a/istio/datadog_checks/istio/__about__.py +++ b/istio/datadog_checks/istio/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "6.1.1" +__version__ = "6.1.2" diff --git a/kafka_consumer/CHANGELOG.md b/kafka_consumer/CHANGELOG.md index 96df7a7765279..ef39da030554e 100644 --- a/kafka_consumer/CHANGELOG.md +++ b/kafka_consumer/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.5.0 / 2024-07-05 + +***Added***: + +* Kafka consumer : add consumer group state as tag ([#17686](https://github.com/DataDog/integrations-core/pull/17686)) + ## 4.4.0 / 2024-06-11 ***Added***: diff --git a/kafka_consumer/changelog.d/17686.added b/kafka_consumer/changelog.d/17686.added deleted file mode 100644 index d2bfcb9159056..0000000000000 --- a/kafka_consumer/changelog.d/17686.added +++ /dev/null @@ -1 +0,0 @@ -Kafka consumer : add consumer group state as tag diff --git a/kafka_consumer/datadog_checks/kafka_consumer/__about__.py b/kafka_consumer/datadog_checks/kafka_consumer/__about__.py index 04f665f649539..b804d77769b02 100644 --- a/kafka_consumer/datadog_checks/kafka_consumer/__about__.py +++ b/kafka_consumer/datadog_checks/kafka_consumer/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.4.0" +__version__ = "4.5.0" diff --git a/karpenter/CHANGELOG.md b/karpenter/CHANGELOG.md index 02d66bbc87e90..0deedbd92e602 100644 --- a/karpenter/CHANGELOG.md +++ b/karpenter/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.4.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.4.0 / 2024-05-31 ***Added***: diff --git a/karpenter/changelog.d/17802.fixed b/karpenter/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/karpenter/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/karpenter/datadog_checks/karpenter/__about__.py b/karpenter/datadog_checks/karpenter/__about__.py index 8419d579ec37f..44acbd9636739 100644 --- a/karpenter/datadog_checks/karpenter/__about__.py +++ b/karpenter/datadog_checks/karpenter/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.4.0' +__version__ = '1.4.1' diff --git a/kong/CHANGELOG.md b/kong/CHANGELOG.md index 135f25ac9ff04..7df0f17d56198 100644 --- a/kong/CHANGELOG.md +++ b/kong/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 3.2.1 / 2024-05-31 ***Fixed***: diff --git a/kong/changelog.d/17802.fixed b/kong/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/kong/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/kong/datadog_checks/kong/__about__.py b/kong/datadog_checks/kong/__about__.py index 2ff0643692b9e..e5456b9ec95ef 100644 --- a/kong/datadog_checks/kong/__about__.py +++ b/kong/datadog_checks/kong/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.1' +__version__ = '3.2.2' diff --git a/kubernetes_cluster_autoscaler/CHANGELOG.md b/kubernetes_cluster_autoscaler/CHANGELOG.md index 5f89c91a7cad0..00b2987b26e01 100644 --- a/kubernetes_cluster_autoscaler/CHANGELOG.md +++ b/kubernetes_cluster_autoscaler/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.0.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.0.0 / 2024-05-30 ***Added***: diff --git a/kubernetes_cluster_autoscaler/changelog.d/17802.fixed b/kubernetes_cluster_autoscaler/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/kubernetes_cluster_autoscaler/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/kubernetes_cluster_autoscaler/datadog_checks/kubernetes_cluster_autoscaler/__about__.py b/kubernetes_cluster_autoscaler/datadog_checks/kubernetes_cluster_autoscaler/__about__.py index acbfd1c866b84..e0db4e56d553f 100644 --- a/kubernetes_cluster_autoscaler/datadog_checks/kubernetes_cluster_autoscaler/__about__.py +++ b/kubernetes_cluster_autoscaler/datadog_checks/kubernetes_cluster_autoscaler/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '1.0.1' diff --git a/linkerd/CHANGELOG.md b/linkerd/CHANGELOG.md index dbe1a6f2ab549..adf06380f6be1 100644 --- a/linkerd/CHANGELOG.md +++ b/linkerd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 4.2.1 / 2024-05-31 ***Fixed***: diff --git a/linkerd/changelog.d/17802.fixed b/linkerd/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/linkerd/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/linkerd/datadog_checks/linkerd/__about__.py b/linkerd/datadog_checks/linkerd/__about__.py index 8bbfa16dda76d..131ae880ddf5a 100644 --- a/linkerd/datadog_checks/linkerd/__about__.py +++ b/linkerd/datadog_checks/linkerd/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.2.1" +__version__ = "4.2.2" diff --git a/mongo/CHANGELOG.md b/mongo/CHANGELOG.md index 1972045b34730..409fbf34b6428 100644 --- a/mongo/CHANGELOG.md +++ b/mongo/CHANGELOG.md @@ -2,6 +2,43 @@ +## 6.7.0 / 2024-07-05 + +***Deprecated***: + +* Configuration option `dbnames` is deprecated and will be removed in a future release. + To monitor multiple databases, set `database_autodiscovery.enabled` to true and configure `database_autodiscovery.include` and `database_autodiscovery.exclude` filters instead. ([#17959](https://github.com/DataDog/integrations-core/pull/17959)) + +***Added***: + +* Add config option to use reported_database_hostname to override the mongodb instance hostname detected from admin command serverStatus.host ([#17800](https://github.com/DataDog/integrations-core/pull/17800)) +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)), ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) +* Add new `replset_me` tag to mongodb instances that belong to a replica set ([#17829](https://github.com/DataDog/integrations-core/pull/17829)) +* Add cursor object to sampled activities and explain plan payload. cursor contains the cursor information for idleCursor and getmore operations. ([#17840](https://github.com/DataDog/integrations-core/pull/17840)) +* Add tag `clustername` to mongo metrics. This tag is set only when `cluster_name` is provided in the integration configuration. ([#17876](https://github.com/DataDog/integrations-core/pull/17876)) +* Update mongo conf.yaml.example to include DBM for MongoDB config options. The new config options includes `dbm`, `cluster_name`, `operation_samples.enabled` & `operation_samples.collection_interval`. ([#17940](https://github.com/DataDog/integrations-core/pull/17940)) +* Support auto-discover available databases (up to 100 databases) for the monitored mongodb instance. + By default, database autodiscovery is disabled. Set `database_autodiscovery.enabled` to true to enable database autodiscovery. + When enabled, the integration will automatically discover the databases available in the monitored mongodb instance and refresh the list of databases every 10 minutes. + Use `database_autodiscovery.include` and `database_autodiscovery.exclude` to filter the list of databases to monitor. ([#17959](https://github.com/DataDog/integrations-core/pull/17959)) +* Added new collection latency and query execution stats metrics. + - mongodb.collection.totalindexsize + - mongodb.collection.collectionscans.nontailable + - mongodb.collection.collectionscans.total + - mongodb.collection.commands.latency + - mongodb.collection.commands.opsps + - mongodb.collection.reads.latency + - mongodb.collection.reads.opsps + - mongodb.collection.transactions.latency + - mongodb.collection.transactions.opsps + - mongodb.collection.writes.latency + - mongodb.collection.writes.opsps ([#17961](https://github.com/DataDog/integrations-core/pull/17961)) + +***Fixed***: + +* Excludes keys `'readConcern', 'writeConcern', 'needsMerge', 'fromMongos', 'let', 'mayBypassWriteBlocking'` from sampled commands that cause explain to fail ([#17836](https://github.com/DataDog/integrations-core/pull/17836)) +* Replace deprecated collStats command with $collStats aggregation stage to collect collection metrics ([#17961](https://github.com/DataDog/integrations-core/pull/17961)) + ## 6.6.0 / 2024-06-13 ***Added***: diff --git a/mongo/changelog.d/17800.added b/mongo/changelog.d/17800.added deleted file mode 100644 index b5712208f0d07..0000000000000 --- a/mongo/changelog.d/17800.added +++ /dev/null @@ -1 +0,0 @@ -Add config option to use reported_database_hostname to override the mongodb instance hostname detected from admin command serverStatus.host diff --git a/mongo/changelog.d/17817.added b/mongo/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/mongo/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/mongo/changelog.d/17829.added b/mongo/changelog.d/17829.added deleted file mode 100644 index 5836ba7bc284f..0000000000000 --- a/mongo/changelog.d/17829.added +++ /dev/null @@ -1 +0,0 @@ -Add new `replset_me` tag to mongodb instances that belong to a replica set diff --git a/mongo/changelog.d/17836.fixed b/mongo/changelog.d/17836.fixed deleted file mode 100644 index 7eefcb19dc9a1..0000000000000 --- a/mongo/changelog.d/17836.fixed +++ /dev/null @@ -1 +0,0 @@ -Excludes keys `'readConcern', 'writeConcern', 'needsMerge', 'fromMongos', 'let', 'mayBypassWriteBlocking'` from sampled commands that cause explain to fail diff --git a/mongo/changelog.d/17840.added b/mongo/changelog.d/17840.added deleted file mode 100644 index 70b7f044188e3..0000000000000 --- a/mongo/changelog.d/17840.added +++ /dev/null @@ -1 +0,0 @@ -Add cursor object to sampled activities and explain plan payload. cursor contains the cursor information for idleCursor and getmore operations. diff --git a/mongo/changelog.d/17876.added b/mongo/changelog.d/17876.added deleted file mode 100644 index 2160f161a8cab..0000000000000 --- a/mongo/changelog.d/17876.added +++ /dev/null @@ -1 +0,0 @@ -Add tag `clustername` to mongo metrics. This tag is set only when `cluster_name` is provided in the integration configuration. diff --git a/mongo/changelog.d/17940.added b/mongo/changelog.d/17940.added deleted file mode 100644 index 800f2aad9c1d1..0000000000000 --- a/mongo/changelog.d/17940.added +++ /dev/null @@ -1 +0,0 @@ -Update mongo conf.yaml.example to include DBM for MongoDB config options. The new config options includes `dbm`, `cluster_name`, `operation_samples.enabled` & `operation_samples.collection_interval`. diff --git a/mongo/changelog.d/17953.added b/mongo/changelog.d/17953.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/mongo/changelog.d/17953.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/mongo/changelog.d/17959.added b/mongo/changelog.d/17959.added deleted file mode 100644 index 163a9d54c9eec..0000000000000 --- a/mongo/changelog.d/17959.added +++ /dev/null @@ -1,4 +0,0 @@ -Support auto-discover available databases (up to 100 databases) for the monitored mongodb instance. -By default, database autodiscovery is disabled. Set `database_autodiscovery.enabled` to true to enable database autodiscovery. -When enabled, the integration will automatically discover the databases available in the monitored mongodb instance and refresh the list of databases every 10 minutes. -Use `database_autodiscovery.include` and `database_autodiscovery.exclude` to filter the list of databases to monitor. \ No newline at end of file diff --git a/mongo/changelog.d/17959.deprecated b/mongo/changelog.d/17959.deprecated deleted file mode 100644 index 2ea42d88e7c79..0000000000000 --- a/mongo/changelog.d/17959.deprecated +++ /dev/null @@ -1,2 +0,0 @@ -Configuration option `dbnames` is deprecated and will be removed in a future release. -To monitor multiple databases, set `database_autodiscovery.enabled` to true and configure `database_autodiscovery.include` and `database_autodiscovery.exclude` filters instead. diff --git a/mongo/changelog.d/17961.added b/mongo/changelog.d/17961.added deleted file mode 100644 index 276be8bc1317b..0000000000000 --- a/mongo/changelog.d/17961.added +++ /dev/null @@ -1,12 +0,0 @@ -Added new collection latency and query execution stats metrics. -- mongodb.collection.totalindexsize -- mongodb.collection.collectionscans.nontailable -- mongodb.collection.collectionscans.total -- mongodb.collection.commands.latency -- mongodb.collection.commands.opsps -- mongodb.collection.reads.latency -- mongodb.collection.reads.opsps -- mongodb.collection.transactions.latency -- mongodb.collection.transactions.opsps -- mongodb.collection.writes.latency -- mongodb.collection.writes.opsps diff --git a/mongo/changelog.d/17961.fixed b/mongo/changelog.d/17961.fixed deleted file mode 100644 index e01842a7a778a..0000000000000 --- a/mongo/changelog.d/17961.fixed +++ /dev/null @@ -1 +0,0 @@ -Replace deprecated collStats command with $collStats aggregation stage to collect collection metrics diff --git a/mongo/datadog_checks/mongo/__about__.py b/mongo/datadog_checks/mongo/__about__.py index a3662f30cb656..3e43c3096f4d4 100644 --- a/mongo/datadog_checks/mongo/__about__.py +++ b/mongo/datadog_checks/mongo/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '6.6.0' +__version__ = '6.7.0' diff --git a/mysql/CHANGELOG.md b/mysql/CHANGELOG.md index d6b588bfb73d7..873e0c350bd0a 100644 --- a/mysql/CHANGELOG.md +++ b/mysql/CHANGELOG.md @@ -2,6 +2,18 @@ +## 12.6.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + +***Fixed***: + +* Fixed the MySQL integration to correctly catch and handle errors raised by the connection attempt ([#17872](https://github.com/DataDog/integrations-core/pull/17872)) +* Fixed a bug in MySQL integration when trying to deconstruct None return ([#17873](https://github.com/DataDog/integrations-core/pull/17873)) +* Fix metadata table source for MySQL 5.6 ([#17875](https://github.com/DataDog/integrations-core/pull/17875)) + ## 12.5.1 / 2024-06-11 ***Fixed***: diff --git a/mysql/changelog.d/17817.added b/mysql/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/mysql/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/mysql/changelog.d/17872.fixed b/mysql/changelog.d/17872.fixed deleted file mode 100644 index a2af567251b68..0000000000000 --- a/mysql/changelog.d/17872.fixed +++ /dev/null @@ -1 +0,0 @@ -Fixed the MySQL integration to correctly catch and handle errors raised by the connection attempt diff --git a/mysql/changelog.d/17873.fixed b/mysql/changelog.d/17873.fixed deleted file mode 100644 index 68aff4db746bc..0000000000000 --- a/mysql/changelog.d/17873.fixed +++ /dev/null @@ -1 +0,0 @@ -Fixed a bug in MySQL integration when trying to deconstruct None return diff --git a/mysql/changelog.d/17875.fixed b/mysql/changelog.d/17875.fixed deleted file mode 100644 index 58f8052630dd5..0000000000000 --- a/mysql/changelog.d/17875.fixed +++ /dev/null @@ -1 +0,0 @@ -Fix metadata table source for MySQL 5.6 diff --git a/mysql/datadog_checks/mysql/__about__.py b/mysql/datadog_checks/mysql/__about__.py index 7b35efbc2a38f..627ec2d855ea1 100644 --- a/mysql/datadog_checks/mysql/__about__.py +++ b/mysql/datadog_checks/mysql/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "12.5.1" +__version__ = "12.6.0" diff --git a/nvidia_triton/CHANGELOG.md b/nvidia_triton/CHANGELOG.md index 760a081f5ecb5..90d2f55f90ec1 100644 --- a/nvidia_triton/CHANGELOG.md +++ b/nvidia_triton/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.2.1 / 2024-05-31 ***Fixed***: diff --git a/nvidia_triton/changelog.d/17802.fixed b/nvidia_triton/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/nvidia_triton/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/nvidia_triton/datadog_checks/nvidia_triton/__about__.py b/nvidia_triton/datadog_checks/nvidia_triton/__about__.py index c6125a09bb288..cbacb6e2d1ad9 100644 --- a/nvidia_triton/datadog_checks/nvidia_triton/__about__.py +++ b/nvidia_triton/datadog_checks/nvidia_triton/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.2.1' +__version__ = '1.2.2' diff --git a/openmetrics/CHANGELOG.md b/openmetrics/CHANGELOG.md index 365a4f8765b6e..11f810e6b87a5 100644 --- a/openmetrics/CHANGELOG.md +++ b/openmetrics/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 4.2.1 / 2024-05-31 ***Fixed***: diff --git a/openmetrics/changelog.d/17802.fixed b/openmetrics/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/openmetrics/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/openmetrics/datadog_checks/openmetrics/__about__.py b/openmetrics/datadog_checks/openmetrics/__about__.py index b810deaa7329c..b0555c6ea864f 100644 --- a/openmetrics/datadog_checks/openmetrics/__about__.py +++ b/openmetrics/datadog_checks/openmetrics/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.2.1" +__version__ = "4.2.2" diff --git a/postgres/CHANGELOG.md b/postgres/CHANGELOG.md index aeaced85cd805..97fbd25a41735 100644 --- a/postgres/CHANGELOG.md +++ b/postgres/CHANGELOG.md @@ -2,6 +2,26 @@ +## 19.0.0 / 2024-07-05 + +***Changed***: + +* Drop explain plan errors to debug level. + + Explain plan collection can fail for any number of legitimate reasons, so avoid polluting the logs by logging them at the debug level. ([#17974](https://github.com/DataDog/integrations-core/pull/17974)) + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)), ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) +* Add toast metrics to relation metrics and remove usage of pg_stat_user_tables ([#17897](https://github.com/DataDog/integrations-core/pull/17897)) +* Add collect of metrics for buffer cache usage ([#17960](https://github.com/DataDog/integrations-core/pull/17960)) + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) +* Upgrade `azure-identity` dependency ([#17862](https://github.com/DataDog/integrations-core/pull/17862)) +* Ignore DBM explain plan collection queries in query metrics. ([#17903](https://github.com/DataDog/integrations-core/pull/17903)) + ## 18.3.0 / 2024-05-31 ***Added***: diff --git a/postgres/changelog.d/17802.fixed b/postgres/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/postgres/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/postgres/changelog.d/17817.added b/postgres/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/postgres/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/postgres/changelog.d/17862.fixed b/postgres/changelog.d/17862.fixed deleted file mode 100644 index c6980db2f9a47..0000000000000 --- a/postgres/changelog.d/17862.fixed +++ /dev/null @@ -1 +0,0 @@ -Upgrade `azure-identity` dependency diff --git a/postgres/changelog.d/17897.added b/postgres/changelog.d/17897.added deleted file mode 100644 index a50afb861b2a1..0000000000000 --- a/postgres/changelog.d/17897.added +++ /dev/null @@ -1 +0,0 @@ -Add toast metrics to relation metrics and remove usage of pg_stat_user_tables diff --git a/postgres/changelog.d/17903.fixed b/postgres/changelog.d/17903.fixed deleted file mode 100644 index 521f01298baa4..0000000000000 --- a/postgres/changelog.d/17903.fixed +++ /dev/null @@ -1 +0,0 @@ -Ignore DBM explain plan collection queries in query metrics. diff --git a/postgres/changelog.d/17953.added b/postgres/changelog.d/17953.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/postgres/changelog.d/17953.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/postgres/changelog.d/17960.added b/postgres/changelog.d/17960.added deleted file mode 100644 index ddf2d3e754ee5..0000000000000 --- a/postgres/changelog.d/17960.added +++ /dev/null @@ -1 +0,0 @@ -Add collect of metrics for buffer cache usage diff --git a/postgres/changelog.d/17974.changed b/postgres/changelog.d/17974.changed deleted file mode 100644 index 1d9b5c1c25672..0000000000000 --- a/postgres/changelog.d/17974.changed +++ /dev/null @@ -1,3 +0,0 @@ -Drop explain plan errors to debug level. - -Explain plan collection can fail for any number of legitimate reasons, so avoid polluting the logs by logging them at the debug level. diff --git a/postgres/datadog_checks/postgres/__about__.py b/postgres/datadog_checks/postgres/__about__.py index 9e9ca607125d1..14db3cf9648e5 100644 --- a/postgres/datadog_checks/postgres/__about__.py +++ b/postgres/datadog_checks/postgres/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "18.3.0" +__version__ = "19.0.0" diff --git a/process/CHANGELOG.md b/process/CHANGELOG.md index 146c4961dcf8d..14f0500c776a7 100644 --- a/process/CHANGELOG.md +++ b/process/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.4.0 / 2024-07-05 + +***Added***: + +* Add `use_oneshot` parameter to speed up check runs with `psutil.Process().oneshot()` ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + ## 3.3.0 / 2024-03-08 / Agent 7.52.0 ***Added***: diff --git a/process/changelog.d/17817.added b/process/changelog.d/17817.added deleted file mode 100644 index bef7b39462633..0000000000000 --- a/process/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Add `use_oneshot` parameter to speed up check runs with `psutil.Process().oneshot()` \ No newline at end of file diff --git a/process/datadog_checks/process/__about__.py b/process/datadog_checks/process/__about__.py index ccf4c4835eb69..378e8c4ee6a6b 100644 --- a/process/datadog_checks/process/__about__.py +++ b/process/datadog_checks/process/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.0' +__version__ = '3.4.0' diff --git a/pulsar/CHANGELOG.md b/pulsar/CHANGELOG.md index c574d82c9efd2..91acc9b95fcf6 100644 --- a/pulsar/CHANGELOG.md +++ b/pulsar/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.1 / 2024-05-31 ***Fixed***: diff --git a/pulsar/changelog.d/17802.fixed b/pulsar/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/pulsar/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/pulsar/datadog_checks/pulsar/__about__.py b/pulsar/datadog_checks/pulsar/__about__.py index ba014f7154f24..faa7c19604967 100644 --- a/pulsar/datadog_checks/pulsar/__about__.py +++ b/pulsar/datadog_checks/pulsar/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '2.2.2' diff --git a/rabbitmq/CHANGELOG.md b/rabbitmq/CHANGELOG.md index e66fbdbd40b6f..9ee6c447883dc 100644 --- a/rabbitmq/CHANGELOG.md +++ b/rabbitmq/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.3.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 5.3.1 / 2024-05-31 ***Fixed***: diff --git a/rabbitmq/changelog.d/17802.fixed b/rabbitmq/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/rabbitmq/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/rabbitmq/datadog_checks/rabbitmq/__about__.py b/rabbitmq/datadog_checks/rabbitmq/__about__.py index d31e3fba94453..27d82e6ca6554 100644 --- a/rabbitmq/datadog_checks/rabbitmq/__about__.py +++ b/rabbitmq/datadog_checks/rabbitmq/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '5.3.1' +__version__ = '5.3.2' diff --git a/ray/CHANGELOG.md b/ray/CHANGELOG.md index a77b1456afd88..57e9fc563889a 100644 --- a/ray/CHANGELOG.md +++ b/ray/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.2.1 / 2024-05-31 ***Fixed***: diff --git a/ray/changelog.d/17802.fixed b/ray/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/ray/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/ray/datadog_checks/ray/__about__.py b/ray/datadog_checks/ray/__about__.py index c6125a09bb288..cbacb6e2d1ad9 100644 --- a/ray/datadog_checks/ray/__about__.py +++ b/ray/datadog_checks/ray/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.2.1' +__version__ = '1.2.2' diff --git a/redisdb/CHANGELOG.md b/redisdb/CHANGELOG.md index c6dce3ffaf86b..2639e775b966b 100644 --- a/redisdb/CHANGELOG.md +++ b/redisdb/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.6.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)), ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) + ## 5.5.0 / 2024-05-31 ***Added***: diff --git a/redisdb/changelog.d/17817.added b/redisdb/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/redisdb/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/redisdb/changelog.d/17953.added b/redisdb/changelog.d/17953.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/redisdb/changelog.d/17953.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/redisdb/datadog_checks/redisdb/__about__.py b/redisdb/datadog_checks/redisdb/__about__.py index ba0d45512da78..08c574d38a163 100644 --- a/redisdb/datadog_checks/redisdb/__about__.py +++ b/redisdb/datadog_checks/redisdb/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "5.5.0" +__version__ = "5.6.0" diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index 9bbef011cce88..8e79700a787ad 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -1,97 +1,97 @@ # DO NOT PASS THIS TO PIP DIRECTLY # THIS FILE IS AUTO-GENERATED, DO NOT EDIT BY HAND --no-index -datadog-active-directory==2.1.0; sys_platform == 'win32' +datadog-active-directory==2.1.1; sys_platform == 'win32' datadog-activemq-xml==3.2.1 datadog-activemq==3.1.0 -datadog-aerospike==2.2.1; sys_platform == 'linux2' +datadog-aerospike==2.2.2; sys_platform == 'linux2' datadog-airflow==5.0.1 -datadog-amazon-msk==4.8.0 +datadog-amazon-msk==4.9.0 datadog-ambari==4.2.1; sys_platform != 'win32' datadog-apache==4.5.1 -datadog-arangodb==2.2.1 -datadog-argo-rollouts==1.0.1 -datadog-argo-workflows==1.0.1 -datadog-argocd==2.4.1 -datadog-aspdotnet==2.1.0; sys_platform == 'win32' -datadog-avi-vantage==4.2.1 +datadog-arangodb==2.2.2 +datadog-argo-rollouts==1.0.2 +datadog-argo-workflows==1.0.2 +datadog-argocd==2.4.2 +datadog-aspdotnet==2.1.1; sys_platform == 'win32' +datadog-avi-vantage==4.2.2 datadog-azure-iot-edge==4.2.1 -datadog-boundary==2.2.2 +datadog-boundary==2.2.3 datadog-btrfs==2.3.0; sys_platform != 'win32' datadog-cacti==2.1.1; sys_platform == 'linux2' -datadog-calico==2.2.1 +datadog-calico==2.2.2 datadog-cassandra-nodetool==1.13.0 datadog-cassandra==1.18.0 datadog-ceph==2.10.0; sys_platform != 'win32' -datadog-cert-manager==4.1.1 +datadog-cert-manager==4.1.2 datadog-checkpoint-quantum-firewall==1.0.0 -datadog-checks-base==36.8.0 +datadog-checks-base==36.9.0 datadog-checks-dependency-provider==1.4.0 -datadog-checks-downloader==4.6.0 -datadog-cilium==3.5.0 -datadog-cisco-aci==2.8.0 +datadog-checks-downloader==4.7.0 +datadog-cilium==3.5.1 +datadog-cisco-aci==2.9.0 datadog-cisco-secure-firewall==1.0.0 datadog-citrix-hypervisor==3.2.1 -datadog-clickhouse==3.5.0 +datadog-clickhouse==3.6.0 datadog-cloud-foundry-api==3.3.1 datadog-cloudera==2.2.0 -datadog-cockroachdb==3.3.1 +datadog-cockroachdb==3.3.2 datadog-confluent-platform==1.10.2 datadog-consul==2.6.1 -datadog-coredns==3.2.2; sys_platform == 'linux2' +datadog-coredns==3.2.3; sys_platform == 'linux2' datadog-couch==6.2.1 datadog-couchbase==3.2.1 datadog-crio==2.6.1 datadog-datadog-cluster-agent==3.1.1 -datadog-dcgm==2.3.1 +datadog-dcgm==2.3.2 datadog-directory==2.1.1 datadog-disk==5.3.0 datadog-dns-check==3.3.0 -datadog-dotnetclr==2.1.0; sys_platform == 'win32' +datadog-dotnetclr==2.1.1; sys_platform == 'win32' datadog-druid==2.5.1 datadog-ecs-fargate==4.3.1 datadog-eks-fargate==4.2.1 datadog-elastic==6.3.1 -datadog-envoy==3.5.0 -datadog-esxi==1.1.0 -datadog-etcd==6.2.1 -datadog-exchange-server==2.1.0; sys_platform == 'win32' +datadog-envoy==3.5.1 +datadog-esxi==1.2.0 +datadog-etcd==6.2.2 +datadog-exchange-server==2.1.1; sys_platform == 'win32' datadog-external-dns==3.2.1 datadog-flink==1.5.0 datadog-fluentd==3.2.1 -datadog-fluxcd==1.2.1 +datadog-fluxcd==1.2.2 datadog-foundationdb==1.4.0 datadog-gearmand==3.1.0; sys_platform != 'win32' datadog-gitlab-runner==4.2.1 -datadog-gitlab==7.3.1 +datadog-gitlab==7.3.2 datadog-glusterfs==1.7.0; sys_platform == 'linux2' datadog-go-expvar==2.5.1 datadog-gunicorn==2.7.0; sys_platform != 'win32' -datadog-haproxy==5.2.1 +datadog-haproxy==5.2.2 datadog-harbor==3.2.2 datadog-hazelcast==3.2.1 datadog-hdfs-datanode==4.2.1; sys_platform != 'win32' datadog-hdfs-namenode==4.2.1; sys_platform != 'win32' datadog-hive==1.10.0 datadog-hivemq==1.8.0 -datadog-http-check==9.6.0 +datadog-http-check==9.7.0 datadog-hudi==2.3.0 -datadog-hyperv==1.11.0; sys_platform == 'win32' +datadog-hyperv==1.11.1; sys_platform == 'win32' datadog-ibm-ace==2.2.2 datadog-ibm-db2==2.2.0 datadog-ibm-i==2.2.0; sys_platform != 'win32' datadog-ibm-mq==6.3.0 datadog-ibm-was==3.3.1 datadog-ignite==2.4.0 -datadog-iis==3.1.0; sys_platform == 'win32' -datadog-impala==2.2.1 -datadog-istio==6.1.1 +datadog-iis==3.1.1; sys_platform == 'win32' +datadog-impala==2.2.2 +datadog-istio==6.1.2 datadog-jboss-wildfly==2.2.0 datadog-journald==1.2.0 -datadog-kafka-consumer==4.4.0 +datadog-kafka-consumer==4.5.0 datadog-kafka==2.16.0 -datadog-karpenter==1.4.0 -datadog-kong==3.2.1 +datadog-karpenter==1.4.1 +datadog-kong==3.2.2 datadog-kube-apiserver-metrics==4.3.1 datadog-kube-controller-manager==5.1.1 datadog-kube-dns==4.4.1 @@ -99,11 +99,11 @@ datadog-kube-metrics-server==3.3.1 datadog-kube-proxy==6.3.1 datadog-kube-scheduler==4.10.1 datadog-kubelet==7.13.2 -datadog-kubernetes-cluster-autoscaler==1.0.0 +datadog-kubernetes-cluster-autoscaler==1.0.1 datadog-kubernetes-state==8.1.1 datadog-kyototycoon==2.5.1 datadog-lighttpd==3.5.1 -datadog-linkerd==4.2.1 +datadog-linkerd==4.2.2 datadog-linux-proc-extras==2.5.0; sys_platform == 'linux2' datadog-mapr==1.11.0; sys_platform == 'linux2' datadog-mapreduce==4.2.1 @@ -112,16 +112,16 @@ datadog-marklogic==4.2.1 datadog-mcache==4.1.0; sys_platform != 'win32' datadog-mesos-master==3.3.1; sys_platform != 'win32' datadog-mesos-slave==3.3.1; sys_platform != 'win32' -datadog-mongo==6.6.0 -datadog-mysql==12.5.1 +datadog-mongo==6.7.0 +datadog-mysql==12.6.0 datadog-nagios==1.13.0 datadog-network==3.3.0 datadog-nfsstat==1.13.0; sys_platform == 'linux2' datadog-nginx-ingress-controller==2.6.1 datadog-nginx==6.3.1 -datadog-nvidia-triton==1.2.1 +datadog-nvidia-triton==1.2.2 datadog-openldap==1.12.0 -datadog-openmetrics==4.2.1 +datadog-openmetrics==4.2.2 datadog-openstack-controller==6.8.0 datadog-openstack==2.0.0 datadog-oracle==5.2.0 @@ -131,63 +131,63 @@ datadog-pdh-check==2.1.0; sys_platform == 'win32' datadog-pgbouncer==6.2.0; sys_platform != 'win32' datadog-php-fpm==3.3.1 datadog-postfix==1.14.0; sys_platform != 'win32' -datadog-postgres==18.3.0 +datadog-postgres==19.0.0 datadog-powerdns-recursor==2.5.1 datadog-presto==2.8.0 -datadog-process==3.3.0 +datadog-process==3.4.0 datadog-prometheus==3.6.0 datadog-proxysql==5.1.1 -datadog-pulsar==2.2.1 -datadog-rabbitmq==5.3.1 -datadog-ray==1.2.1 -datadog-redisdb==5.5.0 +datadog-pulsar==2.2.2 +datadog-rabbitmq==5.3.2 +datadog-ray==1.2.2 +datadog-redisdb==5.6.0 datadog-rethinkdb==3.1.0 datadog-riak==3.5.1 datadog-riakcs==2.11.0 datadog-sap-hana==3.2.0 -datadog-scylla==2.7.1 +datadog-scylla==2.7.2 datadog-sidekiq==1.4.0 datadog-silk==2.2.1 datadog-singlestore==2.2.1 datadog-snmp==7.3.1 -datadog-snowflake==5.6.0 +datadog-snowflake==5.7.0 datadog-solr==1.13.0 datadog-sonarqube==3.2.2 datadog-spark==4.3.1 -datadog-sqlserver==17.3.0 +datadog-sqlserver==17.4.0 datadog-squid==2.5.1 datadog-ssh-check==2.8.0 datadog-statsd==1.12.0 -datadog-strimzi==2.2.1 +datadog-strimzi==2.2.2 datadog-supervisord==2.6.0 datadog-system-core==2.4.0 datadog-system-swap==1.18.0 -datadog-tcp-check==4.8.0 -datadog-teamcity==4.2.1 -datadog-tekton==1.0.1 +datadog-tcp-check==4.9.0 +datadog-teamcity==4.3.0 +datadog-tekton==1.0.2 datadog-teleport==1.0.0 -datadog-temporal==2.2.1 +datadog-temporal==2.2.2 datadog-tenable==1.5.0 -datadog-teradata==2.2.0; sys_platform != 'darwin' -datadog-tls==2.17.0 +datadog-teradata==2.2.1; sys_platform != 'darwin' +datadog-tls==2.18.0 datadog-tokumx==3.2.0 datadog-tomcat==2.0.0 -datadog-torchserve==2.2.1 -datadog-traefik-mesh==1.0.0 +datadog-torchserve==2.2.2 +datadog-traefik-mesh==1.0.1 datadog-traffic-server==2.2.1 datadog-twemproxy==1.15.0 datadog-twistlock==3.6.1 datadog-varnish==2.1.0 -datadog-vault==4.2.0 +datadog-vault==4.2.1 datadog-vertica==4.5.0 datadog-vllm==1.0.0 datadog-voltdb==3.2.1 -datadog-vsphere==7.5.3 -datadog-weaviate==2.3.2 +datadog-vsphere==7.6.0 +datadog-weaviate==2.3.3 datadog-weblogic==1.3.0 datadog-win32-event-log==3.3.0; sys_platform == 'win32' -datadog-windows-performance-counters==2.1.0; sys_platform == 'win32' -datadog-windows-service==4.9.0; sys_platform == 'win32' +datadog-windows-performance-counters==2.1.1; sys_platform == 'win32' +datadog-windows-service==4.9.1; sys_platform == 'win32' datadog-wmi-check==1.18.0; sys_platform == 'win32' datadog-yarn==5.3.1 datadog-zeek==1.0.0; sys_platform != 'win32' diff --git a/scylla/CHANGELOG.md b/scylla/CHANGELOG.md index 68bf09388b2e5..dab9bf97deac6 100644 --- a/scylla/CHANGELOG.md +++ b/scylla/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.7.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.7.1 / 2024-05-31 ***Fixed***: diff --git a/scylla/changelog.d/17802.fixed b/scylla/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/scylla/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/scylla/datadog_checks/scylla/__about__.py b/scylla/datadog_checks/scylla/__about__.py index 4832c8395ee43..21cf55e8337bb 100644 --- a/scylla/datadog_checks/scylla/__about__.py +++ b/scylla/datadog_checks/scylla/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.7.1' +__version__ = '2.7.2' diff --git a/snowflake/CHANGELOG.md b/snowflake/CHANGELOG.md index e93be701ffd92..0e49138b24196 100644 --- a/snowflake/CHANGELOG.md +++ b/snowflake/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.7.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + ## 5.6.0 / 2024-05-31 ***Added***: diff --git a/snowflake/changelog.d/17817.added b/snowflake/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/snowflake/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/snowflake/datadog_checks/snowflake/__about__.py b/snowflake/datadog_checks/snowflake/__about__.py index a864b43691fd9..4bbde59fd50ed 100644 --- a/snowflake/datadog_checks/snowflake/__about__.py +++ b/snowflake/datadog_checks/snowflake/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '5.6.0' +__version__ = '5.7.0' diff --git a/sqlserver/CHANGELOG.md b/sqlserver/CHANGELOG.md index 592f3c636e248..bbdcba36c45fa 100644 --- a/sqlserver/CHANGELOG.md +++ b/sqlserver/CHANGELOG.md @@ -2,6 +2,24 @@ +## 17.4.0 / 2024-07-05 + +***Added***: + +* Adding schema collection to sqlserver + Schema data includes information about the tables, their columns, indexes, foreign keys, and partitions. ([#17258](https://github.com/DataDog/integrations-core/pull/17258)) +* Set sqlserver integration default odbc driver to agent embedded msodbcsql18 on Linux platform ([#17729](https://github.com/DataDog/integrations-core/pull/17729)) +* Update embedded odbc driver config odbcinist.ini to use msodbcsql 18.3.3.1 ([#17765](https://github.com/DataDog/integrations-core/pull/17765)) +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + +***Fixed***: + +* Filter query metrics by database_name if check is configured to a single non-master db ([#17717](https://github.com/DataDog/integrations-core/pull/17717)) +* [sqlserver] fix missing sqlserver_version ([#17750](https://github.com/DataDog/integrations-core/pull/17750)) +* Hyphen in database name support ([#17775](https://github.com/DataDog/integrations-core/pull/17775)) +* Upgrade `azure-identity` dependency ([#17862](https://github.com/DataDog/integrations-core/pull/17862)) +* Move sqlserver schema foreign key information to the dependent table. ([#17933](https://github.com/DataDog/integrations-core/pull/17933)) + ## 17.3.0 / 2024-05-31 ***Added***: diff --git a/sqlserver/changelog.d/17258.added b/sqlserver/changelog.d/17258.added deleted file mode 100644 index ac15210ed68ba..0000000000000 --- a/sqlserver/changelog.d/17258.added +++ /dev/null @@ -1,2 +0,0 @@ -Adding schema collection to sqlserver -Schema data includes information about the tables, their columns, indexes, foreign keys, and partitions. diff --git a/sqlserver/changelog.d/17717.fixed b/sqlserver/changelog.d/17717.fixed deleted file mode 100644 index cccc6eda41dba..0000000000000 --- a/sqlserver/changelog.d/17717.fixed +++ /dev/null @@ -1 +0,0 @@ -Filter query metrics by database_name if check is configured to a single non-master db diff --git a/sqlserver/changelog.d/17729.added b/sqlserver/changelog.d/17729.added deleted file mode 100644 index eb104d091991e..0000000000000 --- a/sqlserver/changelog.d/17729.added +++ /dev/null @@ -1 +0,0 @@ -Set sqlserver integration default odbc driver to agent embedded msodbcsql18 on Linux platform diff --git a/sqlserver/changelog.d/17750.fixed b/sqlserver/changelog.d/17750.fixed deleted file mode 100644 index f186800a75316..0000000000000 --- a/sqlserver/changelog.d/17750.fixed +++ /dev/null @@ -1 +0,0 @@ -[sqlserver] fix missing sqlserver_version diff --git a/sqlserver/changelog.d/17765.added b/sqlserver/changelog.d/17765.added deleted file mode 100644 index 1b52c8a09498b..0000000000000 --- a/sqlserver/changelog.d/17765.added +++ /dev/null @@ -1 +0,0 @@ -Update embedded odbc driver config odbcinist.ini to use msodbcsql 18.3.3.1 diff --git a/sqlserver/changelog.d/17775.fixed b/sqlserver/changelog.d/17775.fixed deleted file mode 100644 index 27b4acdb78f6b..0000000000000 --- a/sqlserver/changelog.d/17775.fixed +++ /dev/null @@ -1 +0,0 @@ -Hyphen in database name support diff --git a/sqlserver/changelog.d/17817.added b/sqlserver/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/sqlserver/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/sqlserver/changelog.d/17862.fixed b/sqlserver/changelog.d/17862.fixed deleted file mode 100644 index c6980db2f9a47..0000000000000 --- a/sqlserver/changelog.d/17862.fixed +++ /dev/null @@ -1 +0,0 @@ -Upgrade `azure-identity` dependency diff --git a/sqlserver/changelog.d/17933.fixed b/sqlserver/changelog.d/17933.fixed deleted file mode 100644 index eecdf57342e2f..0000000000000 --- a/sqlserver/changelog.d/17933.fixed +++ /dev/null @@ -1 +0,0 @@ -Move sqlserver schema foreign key information to the dependent table. diff --git a/sqlserver/datadog_checks/sqlserver/__about__.py b/sqlserver/datadog_checks/sqlserver/__about__.py index 7c567f1739a7f..7d40a27871a69 100644 --- a/sqlserver/datadog_checks/sqlserver/__about__.py +++ b/sqlserver/datadog_checks/sqlserver/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '17.3.0' +__version__ = '17.4.0' diff --git a/strimzi/CHANGELOG.md b/strimzi/CHANGELOG.md index c732bad107bcf..cae2d2cfbdc86 100644 --- a/strimzi/CHANGELOG.md +++ b/strimzi/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.1 / 2024-05-31 ***Fixed***: diff --git a/strimzi/changelog.d/17802.fixed b/strimzi/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/strimzi/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/strimzi/datadog_checks/strimzi/__about__.py b/strimzi/datadog_checks/strimzi/__about__.py index 476be078b9291..d952686b44b52 100644 --- a/strimzi/datadog_checks/strimzi/__about__.py +++ b/strimzi/datadog_checks/strimzi/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '2.2.2' diff --git a/tcp_check/CHANGELOG.md b/tcp_check/CHANGELOG.md index e77c8df0c7d00..1eb398cb33026 100644 --- a/tcp_check/CHANGELOG.md +++ b/tcp_check/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.9.0 / 2024-07-05 + +***Added***: + +* [tcp_checks] If dns-resolve failed don't report metrics. ([#17912](https://github.com/DataDog/integrations-core/pull/17912)) + ## 4.8.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/tcp_check/changelog.d/17912.added b/tcp_check/changelog.d/17912.added deleted file mode 100644 index 85deef3230539..0000000000000 --- a/tcp_check/changelog.d/17912.added +++ /dev/null @@ -1 +0,0 @@ -[tcp_checks] If dns-resolve failed don't report metrics. \ No newline at end of file diff --git a/tcp_check/datadog_checks/tcp_check/__about__.py b/tcp_check/datadog_checks/tcp_check/__about__.py index 192ce8b078937..f829dc1b86763 100644 --- a/tcp_check/datadog_checks/tcp_check/__about__.py +++ b/tcp_check/datadog_checks/tcp_check/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.8.0' +__version__ = '4.9.0' diff --git a/teamcity/CHANGELOG.md b/teamcity/CHANGELOG.md index 58269be16bd07..20d416cb257be 100644 --- a/teamcity/CHANGELOG.md +++ b/teamcity/CHANGELOG.md @@ -2,6 +2,16 @@ +## 4.3.0 / 2024-07-05 + +***Added***: + +* Add support for TeamCity 2023.05.4 ([#17695](https://github.com/DataDog/integrations-core/pull/17695)) + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 4.2.1 / 2024-05-23 ***Fixed***: diff --git a/teamcity/changelog.d/17695.added b/teamcity/changelog.d/17695.added deleted file mode 100644 index 63d980e9fc08c..0000000000000 --- a/teamcity/changelog.d/17695.added +++ /dev/null @@ -1 +0,0 @@ -Add support for TeamCity 2023.05.4 diff --git a/teamcity/changelog.d/17802.fixed b/teamcity/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/teamcity/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/teamcity/datadog_checks/teamcity/__about__.py b/teamcity/datadog_checks/teamcity/__about__.py index b810deaa7329c..9c10ca23437a6 100644 --- a/teamcity/datadog_checks/teamcity/__about__.py +++ b/teamcity/datadog_checks/teamcity/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.2.1" +__version__ = "4.3.0" diff --git a/tekton/CHANGELOG.md b/tekton/CHANGELOG.md index 3e7b810836656..94a2a22c92363 100644 --- a/tekton/CHANGELOG.md +++ b/tekton/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.0.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.0.1 / 2024-05-31 ***Fixed***: diff --git a/tekton/changelog.d/17802.fixed b/tekton/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/tekton/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/tekton/datadog_checks/tekton/__about__.py b/tekton/datadog_checks/tekton/__about__.py index e0db4e56d553f..1436e0ab91c45 100644 --- a/tekton/datadog_checks/tekton/__about__.py +++ b/tekton/datadog_checks/tekton/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.1' +__version__ = '1.0.2' diff --git a/temporal/CHANGELOG.md b/temporal/CHANGELOG.md index 59e8de7f846a8..6ad6e038925de 100644 --- a/temporal/CHANGELOG.md +++ b/temporal/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.1 / 2024-05-31 ***Fixed***: diff --git a/temporal/changelog.d/17802.fixed b/temporal/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/temporal/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/temporal/datadog_checks/temporal/__about__.py b/temporal/datadog_checks/temporal/__about__.py index 476be078b9291..d952686b44b52 100644 --- a/temporal/datadog_checks/temporal/__about__.py +++ b/temporal/datadog_checks/temporal/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '2.2.2' diff --git a/teradata/CHANGELOG.md b/teradata/CHANGELOG.md index b89c14c5f7bbe..f880b9d552445 100644 --- a/teradata/CHANGELOG.md +++ b/teradata/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.0 / 2024-03-22 / Agent 7.53.0 ***Added***: diff --git a/teradata/changelog.d/17802.fixed b/teradata/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/teradata/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/teradata/datadog_checks/teradata/__about__.py b/teradata/datadog_checks/teradata/__about__.py index 48229b28def62..ba014f7154f24 100644 --- a/teradata/datadog_checks/teradata/__about__.py +++ b/teradata/datadog_checks/teradata/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.0' +__version__ = '2.2.1' diff --git a/tls/CHANGELOG.md b/tls/CHANGELOG.md index aac41a200de9d..a8b8f9574dba1 100644 --- a/tls/CHANGELOG.md +++ b/tls/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.18.0 / 2024-07-05 + +***Added***: + +* Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) + ## 2.17.0 / 2024-05-31 ***Added***: diff --git a/tls/changelog.d/17817.added b/tls/changelog.d/17817.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/tls/changelog.d/17817.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/tls/datadog_checks/tls/__about__.py b/tls/datadog_checks/tls/__about__.py index 7849ae3f2763b..6c6516f2b86d6 100644 --- a/tls/datadog_checks/tls/__about__.py +++ b/tls/datadog_checks/tls/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.17.0' +__version__ = '2.18.0' diff --git a/torchserve/CHANGELOG.md b/torchserve/CHANGELOG.md index 8a961fb0e0127..6a29b632e62d7 100644 --- a/torchserve/CHANGELOG.md +++ b/torchserve/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.2.2 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.2.1 / 2024-05-31 ***Fixed***: diff --git a/torchserve/changelog.d/17802.fixed b/torchserve/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/torchserve/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/torchserve/datadog_checks/torchserve/__about__.py b/torchserve/datadog_checks/torchserve/__about__.py index 476be078b9291..d952686b44b52 100644 --- a/torchserve/datadog_checks/torchserve/__about__.py +++ b/torchserve/datadog_checks/torchserve/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '2.2.2' diff --git a/traefik_mesh/CHANGELOG.md b/traefik_mesh/CHANGELOG.md index 26f467eccef92..c52800bc7e47a 100644 --- a/traefik_mesh/CHANGELOG.md +++ b/traefik_mesh/CHANGELOG.md @@ -2,6 +2,12 @@ +## 1.0.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 1.0.0 / 2024-05-30 ***Added***: diff --git a/traefik_mesh/changelog.d/17802.fixed b/traefik_mesh/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/traefik_mesh/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/traefik_mesh/datadog_checks/traefik_mesh/__about__.py b/traefik_mesh/datadog_checks/traefik_mesh/__about__.py index acbfd1c866b84..e0db4e56d553f 100644 --- a/traefik_mesh/datadog_checks/traefik_mesh/__about__.py +++ b/traefik_mesh/datadog_checks/traefik_mesh/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '1.0.1' diff --git a/vault/CHANGELOG.md b/vault/CHANGELOG.md index 5a4ea14b959be..424d8ddb727fc 100644 --- a/vault/CHANGELOG.md +++ b/vault/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.2.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 4.2.0 / 2024-05-31 ***Added***: diff --git a/vault/changelog.d/17802.fixed b/vault/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/vault/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/vault/datadog_checks/vault/__about__.py b/vault/datadog_checks/vault/__about__.py index 6e0a39c6a0f92..40fe88961bf3c 100644 --- a/vault/datadog_checks/vault/__about__.py +++ b/vault/datadog_checks/vault/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.0' +__version__ = '4.2.1' diff --git a/vsphere/CHANGELOG.md b/vsphere/CHANGELOG.md index 73367212a51a1..cd751cd8eb62a 100644 --- a/vsphere/CHANGELOG.md +++ b/vsphere/CHANGELOG.md @@ -2,6 +2,14 @@ +## 7.6.0 / 2024-07-05 + +***Added***: + +* Adding an include_events config option to vSphere ([#17855](https://github.com/DataDog/integrations-core/pull/17855)) +* Added more events/resource to be filtered in vSphere with event_resource_filters ([#17917](https://github.com/DataDog/integrations-core/pull/17917)) +* Update dependencies ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) + ## 7.5.3 / 2024-05-31 ***Fixed***: diff --git a/vsphere/changelog.d/17855.added b/vsphere/changelog.d/17855.added deleted file mode 100644 index 065753593ea31..0000000000000 --- a/vsphere/changelog.d/17855.added +++ /dev/null @@ -1 +0,0 @@ -Adding an include_events config option to vSphere diff --git a/vsphere/changelog.d/17917.added b/vsphere/changelog.d/17917.added deleted file mode 100644 index 44526d59e74ca..0000000000000 --- a/vsphere/changelog.d/17917.added +++ /dev/null @@ -1 +0,0 @@ -Added more events/resource to be filtered in vSphere with event_resource_filters diff --git a/vsphere/changelog.d/17953.added b/vsphere/changelog.d/17953.added deleted file mode 100644 index af47fee9d6a90..0000000000000 --- a/vsphere/changelog.d/17953.added +++ /dev/null @@ -1 +0,0 @@ -Update dependencies \ No newline at end of file diff --git a/vsphere/datadog_checks/vsphere/__about__.py b/vsphere/datadog_checks/vsphere/__about__.py index 2e0cb90be87ed..244a440efb5cc 100644 --- a/vsphere/datadog_checks/vsphere/__about__.py +++ b/vsphere/datadog_checks/vsphere/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "7.5.3" +__version__ = "7.6.0" diff --git a/weaviate/CHANGELOG.md b/weaviate/CHANGELOG.md index d9aa2a26e25ba..4392df252046a 100644 --- a/weaviate/CHANGELOG.md +++ b/weaviate/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.3.3 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.3.2 / 2024-05-31 ***Fixed***: diff --git a/weaviate/changelog.d/17802.fixed b/weaviate/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/weaviate/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/weaviate/datadog_checks/weaviate/__about__.py b/weaviate/datadog_checks/weaviate/__about__.py index 3a4912c5dcc6a..88193fe79eeab 100644 --- a/weaviate/datadog_checks/weaviate/__about__.py +++ b/weaviate/datadog_checks/weaviate/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.3.2' +__version__ = '2.3.3' diff --git a/windows_performance_counters/CHANGELOG.md b/windows_performance_counters/CHANGELOG.md index 3a14ba53928ce..cbe6e755dd2e8 100644 --- a/windows_performance_counters/CHANGELOG.md +++ b/windows_performance_counters/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.1.1 / 2024-07-05 + +***Fixed***: + +* Update config model names ([#17802](https://github.com/DataDog/integrations-core/pull/17802)) + ## 2.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/windows_performance_counters/changelog.d/17802.fixed b/windows_performance_counters/changelog.d/17802.fixed deleted file mode 100644 index 016501427fce8..0000000000000 --- a/windows_performance_counters/changelog.d/17802.fixed +++ /dev/null @@ -1 +0,0 @@ -Update config model names diff --git a/windows_performance_counters/datadog_checks/windows_performance_counters/__about__.py b/windows_performance_counters/datadog_checks/windows_performance_counters/__about__.py index e411f8e711f02..5dd52425bd40b 100644 --- a/windows_performance_counters/datadog_checks/windows_performance_counters/__about__.py +++ b/windows_performance_counters/datadog_checks/windows_performance_counters/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.0' +__version__ = '2.1.1' diff --git a/windows_service/CHANGELOG.md b/windows_service/CHANGELOG.md index 9ddcc3db5f605..f376c119adf14 100644 --- a/windows_service/CHANGELOG.md +++ b/windows_service/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.9.1 / 2024-07-05 + +***Fixed***: + +* Using constant values instead of reassigning variables in each check run ([#17749](https://github.com/DataDog/integrations-core/pull/17749)) + ## 4.9.0 / 2024-05-31 ***Added***: diff --git a/windows_service/changelog.d/17749.fixed b/windows_service/changelog.d/17749.fixed deleted file mode 100644 index 3e7120e2d6531..0000000000000 --- a/windows_service/changelog.d/17749.fixed +++ /dev/null @@ -1 +0,0 @@ -Using constant values instead of reassigning variables in each check run diff --git a/windows_service/datadog_checks/windows_service/__about__.py b/windows_service/datadog_checks/windows_service/__about__.py index f829dc1b86763..c8f067d197b6b 100644 --- a/windows_service/datadog_checks/windows_service/__about__.py +++ b/windows_service/datadog_checks/windows_service/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.9.0' +__version__ = '4.9.1' From dd5dd6477b656a6ab56bfc8d9e357515a2d28ce0 Mon Sep 17 00:00:00 2001 From: vivek-datadog <131680079+vivek-datadog@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:58:50 +0200 Subject: [PATCH 20/68] Allow pytest to return success when no tests are collected for flaky test suite (#17990) * Manage no tests collected exit code 5 from pytest for flaky test suite * Manage passing additional -m arguments to pytest in e2e test * Avoid passing `all` to pytest (revert to initial state) --- .github/workflows/test-target.yml | 87 +++++++++++++++++++++++++++--- ddev/src/ddev/cli/test/__init__.py | 28 +++++++++- 2 files changed, 108 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test-target.yml b/.github/workflows/test-target.yml index 6805d8cddfbec..7778a69957b9b 100644 --- a/.github/workflows/test-target.yml +++ b/.github/workflows/test-target.yml @@ -212,23 +212,79 @@ jobs: if: inputs.standard && !inputs.minimum-base-package env: DDEV_TEST_ENABLE_TRACING: "${{ inputs.repo == 'core' && '1' || '0' }}" - run: ddev test --cov --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + run: | + if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then + set +e # Disable immediate exit + ddev test --cov --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev test --cov --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + fi - name: Run Unit & Integration tests with minimum version of base package if: inputs.standard && inputs.minimum-base-package - run: ddev test --compat --recreate --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + run: | + if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then + set +e # Disable immediate exit + ddev test --compat --recreate --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev test --compat --recreate --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + fi - name: Run E2E tests with latest base package if: inputs.standard && inputs.repo == 'core' && !inputs.minimum-base-package env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" - run: ddev env test --base --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + run: | + if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then + set +e # Disable immediate exit + ddev env test --base --new-env --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev env test --base --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + fi - name: Run E2E tests if: inputs.standard && inputs.repo != 'core' env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" - run: ddev env test --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + run: | + if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then + set +e # Disable immediate exit + ddev env test --new-env --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev env test --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + fi - name: Run benchmarks if: inputs.benchmark @@ -243,7 +299,21 @@ jobs: env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" DDEV_TEST_ENABLE_TRACING: "${{ inputs.repo == 'core' && '1' || '0' }}" - run: ddev env test --base --new-env --junit ${{ inputs.target }}:latest ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + run: | + if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then + set +e # Disable immediate exit + ddev env test --base --new-env --junit ${{ inputs.target }}:latest -- ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev env test --base --new-env --junit ${{ inputs.target }}:latest ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + fi - name: View trace log if: inputs.repo == 'core' && always() @@ -272,7 +342,12 @@ jobs: path: "${{ env.TEST_RESULTS_BASE_DIR }}" - name: Upload coverage data - if: inputs.standard && !github.event.repository.private && always() + if: > + inputs.standard && + !github.event.repository.private && + always() && + inputs.pytest-args != '-m flaky' + # Flaky tests will have low coverage, don't upload it to avoid pipeline failure uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/ddev/src/ddev/cli/test/__init__.py b/ddev/src/ddev/cli/test/__init__.py index eed20cf7a1c04..41e5bc66707b0 100644 --- a/ddev/src/ddev/cli/test/__init__.py +++ b/ddev/src/ddev/cli/test/__init__.py @@ -199,7 +199,33 @@ def test( base_command.append('--memray') if e2e: - base_command.extend(('-m', 'e2e')) + # Convert pytest_args to a list if it's a tuple + pytest_args_list = list(pytest_args) if isinstance(pytest_args, tuple) else pytest_args + + # Initialize a list to hold indices of '-m' options and their values to be removed + indices_to_remove = [] + marker_values = [] + + # Iterate over pytest_args_list to find '-m' or '--markers' options and their values + for i, arg in enumerate(pytest_args_list): + if arg in ('-m', '--markers') and i + 1 < len(pytest_args_list): + indices_to_remove.extend([i, i + 1]) + marker_values.append(pytest_args_list[i + 1]) + + # Reverse sort indices_to_remove to avoid index shifting issues during removal + indices_to_remove.sort(reverse=True) + + # Remove the '-m' options and their values from pytest_args_list + for index in indices_to_remove: + pytest_args_list.pop(index) + + # After removing the '-m' options and their values + # Convert the modified pytest_args_list back to a tuple + pytest_args = tuple(pytest_args_list) + + # Construct the combined marker expression with extracted marker values and 'e2e' + combined_marker = " and ".join(marker_values) + " and e2e" if marker_values else "e2e" + base_command.extend(('-m', combined_marker)) global_env_vars[EndToEndEnvVars.PARENT_PYTHON] = sys.executable app.display_debug(f'Targets: {", ".join(targets)}') From 4aedecef3f9d5d7378a5312535cb4d7fc49d978e Mon Sep 17 00:00:00 2001 From: Vivekanand Ilango Date: Mon, 8 Jul 2024 12:05:39 +0200 Subject: [PATCH 21/68] Revert "Allow pytest to return success when no tests are collected for flaky test suite (#17990)" This reverts commit dd5dd6477b656a6ab56bfc8d9e357515a2d28ce0. --- .github/workflows/test-target.yml | 87 +++--------------------------- ddev/src/ddev/cli/test/__init__.py | 28 +--------- 2 files changed, 7 insertions(+), 108 deletions(-) diff --git a/.github/workflows/test-target.yml b/.github/workflows/test-target.yml index 7778a69957b9b..6805d8cddfbec 100644 --- a/.github/workflows/test-target.yml +++ b/.github/workflows/test-target.yml @@ -212,79 +212,23 @@ jobs: if: inputs.standard && !inputs.minimum-base-package env: DDEV_TEST_ENABLE_TRACING: "${{ inputs.repo == 'core' && '1' || '0' }}" - run: | - if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then - set +e # Disable immediate exit - ddev test --cov --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} - exit_code=$? - if [ $exit_code -eq 5 ]; then - # Flaky test count can be zero, this is done to avoid pipeline failure - echo "No tests were collected." - exit 0 - else - exit $exit_code - fi - else - ddev test --cov --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - fi + run: ddev test --cov --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - name: Run Unit & Integration tests with minimum version of base package if: inputs.standard && inputs.minimum-base-package - run: | - if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then - set +e # Disable immediate exit - ddev test --compat --recreate --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} - exit_code=$? - if [ $exit_code -eq 5 ]; then - # Flaky test count can be zero, this is done to avoid pipeline failure - echo "No tests were collected." - exit 0 - else - exit $exit_code - fi - else - ddev test --compat --recreate --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - fi + run: ddev test --compat --recreate --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - name: Run E2E tests with latest base package if: inputs.standard && inputs.repo == 'core' && !inputs.minimum-base-package env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" - run: | - if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then - set +e # Disable immediate exit - ddev env test --base --new-env --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} - exit_code=$? - if [ $exit_code -eq 5 ]; then - # Flaky test count can be zero, this is done to avoid pipeline failure - echo "No tests were collected." - exit 0 - else - exit $exit_code - fi - else - ddev env test --base --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - fi + run: ddev env test --base --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} - name: Run E2E tests if: inputs.standard && inputs.repo != 'core' env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" - run: | - if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then - set +e # Disable immediate exit - ddev env test --new-env --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} - exit_code=$? - if [ $exit_code -eq 5 ]; then - # Flaky test count can be zero, this is done to avoid pipeline failure - echo "No tests were collected." - exit 0 - else - exit $exit_code - fi - else - ddev env test --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - fi + run: ddev env test --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} - name: Run benchmarks if: inputs.benchmark @@ -299,21 +243,7 @@ jobs: env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" DDEV_TEST_ENABLE_TRACING: "${{ inputs.repo == 'core' && '1' || '0' }}" - run: | - if [ "${{ inputs.pytest-args }}" = "-m flaky" ]; then - set +e # Disable immediate exit - ddev env test --base --new-env --junit ${{ inputs.target }}:latest -- ${{ inputs.pytest-args }} - exit_code=$? - if [ $exit_code -eq 5 ]; then - # Flaky test count can be zero, this is done to avoid pipeline failure - echo "No tests were collected." - exit 0 - else - exit $exit_code - fi - else - ddev env test --base --new-env --junit ${{ inputs.target }}:latest ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} - fi + run: ddev env test --base --new-env --junit ${{ inputs.target }}:latest ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} - name: View trace log if: inputs.repo == 'core' && always() @@ -342,12 +272,7 @@ jobs: path: "${{ env.TEST_RESULTS_BASE_DIR }}" - name: Upload coverage data - if: > - inputs.standard && - !github.event.repository.private && - always() && - inputs.pytest-args != '-m flaky' - # Flaky tests will have low coverage, don't upload it to avoid pipeline failure + if: inputs.standard && !github.event.repository.private && always() uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/ddev/src/ddev/cli/test/__init__.py b/ddev/src/ddev/cli/test/__init__.py index 41e5bc66707b0..eed20cf7a1c04 100644 --- a/ddev/src/ddev/cli/test/__init__.py +++ b/ddev/src/ddev/cli/test/__init__.py @@ -199,33 +199,7 @@ def test( base_command.append('--memray') if e2e: - # Convert pytest_args to a list if it's a tuple - pytest_args_list = list(pytest_args) if isinstance(pytest_args, tuple) else pytest_args - - # Initialize a list to hold indices of '-m' options and their values to be removed - indices_to_remove = [] - marker_values = [] - - # Iterate over pytest_args_list to find '-m' or '--markers' options and their values - for i, arg in enumerate(pytest_args_list): - if arg in ('-m', '--markers') and i + 1 < len(pytest_args_list): - indices_to_remove.extend([i, i + 1]) - marker_values.append(pytest_args_list[i + 1]) - - # Reverse sort indices_to_remove to avoid index shifting issues during removal - indices_to_remove.sort(reverse=True) - - # Remove the '-m' options and their values from pytest_args_list - for index in indices_to_remove: - pytest_args_list.pop(index) - - # After removing the '-m' options and their values - # Convert the modified pytest_args_list back to a tuple - pytest_args = tuple(pytest_args_list) - - # Construct the combined marker expression with extracted marker values and 'e2e' - combined_marker = " and ".join(marker_values) + " and e2e" if marker_values else "e2e" - base_command.extend(('-m', combined_marker)) + base_command.extend(('-m', 'e2e')) global_env_vars[EndToEndEnvVars.PARENT_PYTHON] = sys.executable app.display_debug(f'Targets: {", ".join(targets)}') From 8620fe5a20c6ce6d47b3c5572b4d28e9924fbffa Mon Sep 17 00:00:00 2001 From: NouemanKHAL Date: Mon, 8 Jul 2024 13:50:54 +0200 Subject: [PATCH 22/68] Update Logs Parsing rules for the Teleport Pipeline (#17955) * make component name optional in the log prefix * add two samples for missing component name logs * update sample results --- teleport/assets/logs/teleport.yaml | 2 +- teleport/assets/logs/teleport_tests.yaml | 46 +++++++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/teleport/assets/logs/teleport.yaml b/teleport/assets/logs/teleport.yaml index d91ba872e7db0..547a3ce721529 100644 --- a/teleport/assets/logs/teleport.yaml +++ b/teleport/assets/logs/teleport.yaml @@ -155,7 +155,7 @@ pipeline: grok: supportRules: >- _log_prefix - %{date("yyyy-MM-dd'T'HH:mm:ssZZ"):date}\s+%{word:log.level}\s+\[%{notSpace:teleport.component}\]\s+%{notSpace} + %{date("yyyy-MM-dd'T'HH:mm:ssZZ"):date}\s+%{word:log.level}\s+(\[%{notSpace:teleport.component}\])?\s+%{notSpace} _log_common_attr %{_log_prefix}\s+(addr.local:%{ipOrHost:network.client.ip}:%{port:network.client.port}\s+)?(addr.remote:%{ipOrHost:network.destination.ip}:%{port:network.destination.port}\s+)?+cluster_name:%{notSpace:teleport.cluster_name}\s+code:%{notSpace:teleport.code}\s+ei:%{notSpace:teleport.eid} diff --git a/teleport/assets/logs/teleport_tests.yaml b/teleport/assets/logs/teleport_tests.yaml index 43a511a52a406..afd872caa3fc1 100644 --- a/teleport/assets/logs/teleport_tests.yaml +++ b/teleport/assets/logs/teleport_tests.yaml @@ -51,7 +51,7 @@ tests: message: "2024-06-24T15:36:48Z INFO [AUDIT] user.login addr.remote:90.118.178.162:19954 cluster_name:teleport-plint code:T1000W ei:0 error:[invalid username, password or second factor] event:user.login method:local success:false time:2024-06-24T15:36:48.688Z uid:f9ec53d9-0263-43a3-a5e6-fc41351e63bb user:teleport-admin user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 events/emitter.go:288" status: "info" tags: - - "source:LOGS_SOURCE" + - "source:LOGS_SOURCE" timestamp: 1719243408000 - sample: > 2024-05-28T14:21:41Z WARN [PROXY:1:C] Cache was forced to load session @@ -272,3 +272,47 @@ tests: tags: - "source:LOGS_SOURCE" timestamp: 1716907052000 + - sample: >- + 2024-06-26T15:25:13Z WARN "Failed to keep alive ssh server + \"b05b3c10-c35a-4f25-b6c4-3b315a1d4ec1\": ConditionalCheckFailedException: + The conditional request failed + + { + RespMetadata: { + StatusCode: 400, + RequestID: \"5LUDO9VEIGQ436RMP6HEDM0D6FVV4KQNSO5AEMVJF66Q9ASUAAJG\" + }, + Message_: \"The conditional request failed\" + } (count=2, closing=false)." inventory/controller.go:510 + result: + custom: + date: 1719415513000 + log: + level: "WARN" + message: |- + 2024-06-26T15:25:13Z WARN "Failed to keep alive ssh server \"b05b3c10-c35a-4f25-b6c4-3b315a1d4ec1\": ConditionalCheckFailedException: The conditional request failed + { + RespMetadata: { + StatusCode: 400, + RequestID: \"5LUDO9VEIGQ436RMP6HEDM0D6FVV4KQNSO5AEMVJF66Q9ASUAAJG\" + }, + Message_: \"The conditional request failed\" + } (count=2, closing=false)." inventory/controller.go:510 + status: "warn" + tags: + - "source:LOGS_SOURCE" + timestamp: 1719415513000 + - sample: + "2024-06-26T15:00:36Z WARN Restarting watch on error after + waiting 208.931858ms. Error: watcher closed. + local/headlessauthn_watcher.go:158" + result: + custom: + date: 1719414036000 + log: + level: "WARN" + message: "2024-06-26T15:00:36Z WARN Restarting watch on error after waiting 208.931858ms. Error: watcher closed. local/headlessauthn_watcher.go:158" + status: "warn" + tags: + - "source:LOGS_SOURCE" + timestamp: 1719414036000 From 95f971e62ae004a7c0183422fa4f7f56f6bd85d9 Mon Sep 17 00:00:00 2001 From: Thibaud Cheruy Date: Mon, 8 Jul 2024 15:07:40 +0200 Subject: [PATCH 23/68] [NDM][Cisco SD-WAN] Bold Cisco sdwan beta banner (#17941) * Add Cisco sdwan beta banner * trying smth * bold --- cisco_sdwan/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cisco_sdwan/README.md b/cisco_sdwan/README.md index 69cc6416d1e41..6fcaca0c15d8f 100644 --- a/cisco_sdwan/README.md +++ b/cisco_sdwan/README.md @@ -8,7 +8,7 @@ The Cisco SD-WAN integration lets you monitor your Cisco SD-WAN environment with ## Setup -**Note**: The Cisco SD-WAN NDM integration is in **Beta** and will not be billed until it is Generally Available. +**The Cisco SD-WAN NDM integration is in Beta and will not be billed until it is Generally Available.** Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the [Autodiscovery Integration Templates][3] for guidance on applying these instructions. From 5139e97364183edac9cbed838aabfbfcab6b9b74 Mon Sep 17 00:00:00 2001 From: rahulkaukuntla <144174402+rahulkaukuntla@users.noreply.github.com> Date: Mon, 8 Jul 2024 15:30:02 -0400 Subject: [PATCH 24/68] Fixed the heat endpoint for the Openstack Controller (#17996) * fixing the heat endpoint * added a changelog * addressed comments * addressed comments * lint --- openstack_controller/changelog.d/17996.fixed | 1 + .../openstack_controller/api/api_rest.py | 14 +++++++++----- .../openstack_controller/api/api_sdk.py | 10 ++++++++-- .../openstack_controller/components/heat.py | 2 +- .../tokens/1e6e233e637d4d55a50a62b63398ad15.json | 2 +- .../tokens/6e39099cccde4f809b003d9e0dd09304.json | 2 +- .../POST/identity/v3/auth/tokens/system.json | 14 ++++++++++++++ openstack_controller/tests/test_unit_heat.py | 2 +- 8 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 openstack_controller/changelog.d/17996.fixed diff --git a/openstack_controller/changelog.d/17996.fixed b/openstack_controller/changelog.d/17996.fixed new file mode 100644 index 0000000000000..de917a3d4e085 --- /dev/null +++ b/openstack_controller/changelog.d/17996.fixed @@ -0,0 +1 @@ +Fixed the heat endpoint for the Openstack Controller diff --git a/openstack_controller/datadog_checks/openstack_controller/api/api_rest.py b/openstack_controller/datadog_checks/openstack_controller/api/api_rest.py index 8bd2d8f8d7259..d5bd077ffda06 100644 --- a/openstack_controller/datadog_checks/openstack_controller/api/api_rest.py +++ b/openstack_controller/datadog_checks/openstack_controller/api/api_rest.py @@ -30,11 +30,15 @@ def has_admin_role(self): def component_in_catalog(self, component_types): return self._catalog.has_component(component_types) - def get_response_time(self, endpoint_types, remove_project_id=True): + def get_response_time(self, endpoint_types, remove_project_id=True, is_heat=False): endpoint = ( - self._catalog.get_endpoint_by_type(endpoint_types).replace(self._current_project_id, "") - if self._current_project_id and remove_project_id - else self._catalog.get_endpoint_by_type(endpoint_types) + self._catalog.get_endpoint_by_type(endpoint_types).replace(f"/v1/{self._current_project_id}", "") + if is_heat + else ( + self._catalog.get_endpoint_by_type(endpoint_types).replace(self._current_project_id, "") + if self._current_project_id and remove_project_id + else self._catalog.get_endpoint_by_type(endpoint_types) + ) ) self.log.debug("getting response time for `%s`", endpoint) response = self.http.get(endpoint) @@ -604,7 +608,7 @@ def get_glance_members(self, image_id): def get_heat_stacks(self, project_id): return self.make_paginated_request( - '{}/v1/{}/stacks'.format(self._catalog.get_endpoint_by_type(Component.Types.HEAT.value), project_id), + '{}/stacks'.format(self._catalog.get_endpoint_by_type(Component.Types.HEAT.value)), 'stacks', 'id', next_signifier='links', diff --git a/openstack_controller/datadog_checks/openstack_controller/api/api_sdk.py b/openstack_controller/datadog_checks/openstack_controller/api/api_sdk.py index ecb40a4de620f..0631690fec6f4 100644 --- a/openstack_controller/datadog_checks/openstack_controller/api/api_sdk.py +++ b/openstack_controller/datadog_checks/openstack_controller/api/api_sdk.py @@ -115,10 +115,16 @@ def authorize_project(self, project_id): self.connection.authorize() self.http.options['headers']['X-Auth-Token'] = self.connection.session.auth.get_token(self.connection.session) - def get_response_time(self, endpoint_types, remove_project_id=True): + def get_response_time(self, endpoint_types, remove_project_id=True, is_heat=False): endpoint = self._catalog.get_endpoint_by_type(endpoint_types) endpoint = ( - endpoint.replace(self._access.project_id, "") if self._access.project_id and remove_project_id else endpoint + self._catalog.get_endpoint_by_type(endpoint_types).replace(f"/v1/{self._access.project_id}", "") + if is_heat + else ( + endpoint.replace(self._access.project_id, "") + if self._access.project_id and remove_project_id + else endpoint + ) ) response = self.http.get(endpoint) response.raise_for_status() diff --git a/openstack_controller/datadog_checks/openstack_controller/components/heat.py b/openstack_controller/datadog_checks/openstack_controller/components/heat.py index cc06c11b8350d..2de85a370cbb0 100644 --- a/openstack_controller/datadog_checks/openstack_controller/components/heat.py +++ b/openstack_controller/datadog_checks/openstack_controller/components/heat.py @@ -26,7 +26,7 @@ def __init__(self, check): @Component.http_error(report_service_check=True) def _report_response_time(self, global_components_config, tags): self.check.log.debug("reporting `%s` response time", Heat.ID.value) - response_time = self.check.api.get_response_time(Heat.TYPES.value) + response_time = self.check.api.get_response_time(Heat.TYPES.value, is_heat=True) self.check.log.debug("`%s` response time: %s", Heat.ID.value, response_time) self.check.gauge(HEAT_RESPONSE_TIME, response_time, tags=tags) diff --git a/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/1e6e233e637d4d55a50a62b63398ad15.json b/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/1e6e233e637d4d55a50a62b63398ad15.json index 2d3af4388b620..f61231b95cf61 100644 --- a/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/1e6e233e637d4d55a50a62b63398ad15.json +++ b/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/1e6e233e637d4d55a50a62b63398ad15.json @@ -187,7 +187,7 @@ "id": "168f02a638de42f6b66b60b01f905830", "interface": "public", "region_id": "RegionOne", - "url": "http://127.0.0.1:8004/heat-api", + "url": "http://127.0.0.1:8004/heat-api/v1/1e6e233e637d4d55a50a62b63398ad15", "region": "RegionOne" } ], diff --git a/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/6e39099cccde4f809b003d9e0dd09304.json b/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/6e39099cccde4f809b003d9e0dd09304.json index e81e47f6ac1a6..aee4a1a31d53a 100644 --- a/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/6e39099cccde4f809b003d9e0dd09304.json +++ b/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/6e39099cccde4f809b003d9e0dd09304.json @@ -195,7 +195,7 @@ "id": "168f02a638de42f6b66b60b01f905830", "interface": "public", "region_id": "RegionOne", - "url": "http://127.0.0.1:8004/heat-api", + "url": "http://127.0.0.1:8004/heat-api/v1/6e39099cccde4f809b003d9e0dd09304", "region": "RegionOne" } ], diff --git a/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/system.json b/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/system.json index b4253722af112..45a4814029aa5 100644 --- a/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/system.json +++ b/openstack_controller/tests/fixtures/POST/identity/v3/auth/tokens/system.json @@ -103,6 +103,20 @@ "type": "volumev3", "name": "cinderv3" }, + { + "endpoints": [ + { + "id": "168f02a638de42f6b66b60b01f905830", + "interface": "public", + "region_id": "RegionOne", + "url": "http://127.0.0.1:8004/heat-api", + "region": "RegionOne" + } + ], + "id": "36f45c02edba4500adc2bc5974d22bf0", + "type": "orchestration", + "name": "heat" + }, { "endpoints": [ { diff --git a/openstack_controller/tests/test_unit_heat.py b/openstack_controller/tests/test_unit_heat.py index f1a6120c7267f..cef6d072d5d72 100644 --- a/openstack_controller/tests/test_unit_heat.py +++ b/openstack_controller/tests/test_unit_heat.py @@ -132,7 +132,7 @@ def test_response_time_exception(aggregator, check, dd_run_check, mock_http_get) for call in mock_http_get.call_args_list: args, kwargs = call args_list += list(args) - assert args_list.count('http://127.0.0.1:8004/heat-api') == 2 + assert args_list.count('http://127.0.0.1:8004/heat-api') == 3 @pytest.mark.parametrize( From 995bf98d3c3aeac9f35fd6b2e66b79c6273ec529 Mon Sep 17 00:00:00 2001 From: Steven Yuen Date: Mon, 8 Jul 2024 16:15:26 -0400 Subject: [PATCH 25/68] kyverno setup (#17757) * kyverno setup * added python tests * add tests * ci sync * validations * changelog * service checks * validation * validation * sync ci * lint * ci sync * classifier tags * manifests * clean up --------- Co-authored-by: sguillen18 --- .codecov.yml | 9 + .github/workflows/config/labeler.yml | 2 + .github/workflows/test-all.yml | 20 + kyverno/CHANGELOG.md | 4 + kyverno/README.md | 55 + kyverno/assets/configuration/spec.yaml | 10 + kyverno/assets/service_checks.json | 17 + kyverno/changelog.d/17757.added | 1 + kyverno/datadog_checks/__init__.py | 4 + kyverno/datadog_checks/kyverno/__about__.py | 4 + kyverno/datadog_checks/kyverno/__init__.py | 7 + kyverno/datadog_checks/kyverno/check.py | 18 + .../kyverno/config_models/__init__.py | 24 + .../kyverno/config_models/defaults.py | 20 + .../kyverno/config_models/instance.py | 61 + .../kyverno/config_models/shared.py | 45 + .../kyverno/config_models/validators.py | 13 + .../kyverno/data/conf.yaml.example | 55 + kyverno/datadog_checks/kyverno/metrics.py | 73 + kyverno/hatch.toml | 4 + kyverno/images/IMAGES_README.md | 46 + kyverno/manifest.json | 52 + kyverno/metadata.csv | 1 + kyverno/pyproject.toml | 60 + kyverno/tests/__init__.py | 3 + kyverno/tests/common.py | 81 + kyverno/tests/conftest.py | 57 + .../tests/fixtures/admission_controller.txt | 278 + .../tests/fixtures/background_controller.txt | 199 + kyverno/tests/fixtures/cleanup_controller.txt | 162 + kyverno/tests/fixtures/remap_labels.txt | 3 + kyverno/tests/fixtures/reports_controller.txt | 3070 + .../tests/kind/kyverno-policies_install.yaml | 619 + kyverno/tests/kind/kyverno_install.yaml | 49808 ++++++++++++++++ kyverno/tests/test_e2e.py | 9 + kyverno/tests/test_unit.py | 58 + 36 files changed, 54952 insertions(+) create mode 100644 kyverno/CHANGELOG.md create mode 100644 kyverno/README.md create mode 100644 kyverno/assets/configuration/spec.yaml create mode 100644 kyverno/assets/service_checks.json create mode 100644 kyverno/changelog.d/17757.added create mode 100644 kyverno/datadog_checks/__init__.py create mode 100644 kyverno/datadog_checks/kyverno/__about__.py create mode 100644 kyverno/datadog_checks/kyverno/__init__.py create mode 100644 kyverno/datadog_checks/kyverno/check.py create mode 100644 kyverno/datadog_checks/kyverno/config_models/__init__.py create mode 100644 kyverno/datadog_checks/kyverno/config_models/defaults.py create mode 100644 kyverno/datadog_checks/kyverno/config_models/instance.py create mode 100644 kyverno/datadog_checks/kyverno/config_models/shared.py create mode 100644 kyverno/datadog_checks/kyverno/config_models/validators.py create mode 100644 kyverno/datadog_checks/kyverno/data/conf.yaml.example create mode 100644 kyverno/datadog_checks/kyverno/metrics.py create mode 100644 kyverno/hatch.toml create mode 100644 kyverno/images/IMAGES_README.md create mode 100644 kyverno/manifest.json create mode 100644 kyverno/metadata.csv create mode 100644 kyverno/pyproject.toml create mode 100644 kyverno/tests/__init__.py create mode 100644 kyverno/tests/common.py create mode 100644 kyverno/tests/conftest.py create mode 100644 kyverno/tests/fixtures/admission_controller.txt create mode 100644 kyverno/tests/fixtures/background_controller.txt create mode 100644 kyverno/tests/fixtures/cleanup_controller.txt create mode 100644 kyverno/tests/fixtures/remap_labels.txt create mode 100644 kyverno/tests/fixtures/reports_controller.txt create mode 100644 kyverno/tests/kind/kyverno-policies_install.yaml create mode 100644 kyverno/tests/kind/kyverno_install.yaml create mode 100644 kyverno/tests/test_e2e.py create mode 100644 kyverno/tests/test_unit.py diff --git a/.codecov.yml b/.codecov.yml index ca6a0715328df..cf59fd78c9240 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -682,6 +682,10 @@ coverage: target: 75 flags: - vllm + kyverno: + target: 75 + flags: + - kyverno vSphere: target: 75 flags: @@ -1128,6 +1132,11 @@ flags: paths: - kyototycoon/datadog_checks/kyototycoon - kyototycoon/tests + kyverno: + carryforward: true + paths: + - kyverno/datadog_checks/kyverno + - kyverno/tests lighttpd: carryforward: true paths: diff --git a/.github/workflows/config/labeler.yml b/.github/workflows/config/labeler.yml index a4c068d788283..f9e29d2e43816 100644 --- a/.github/workflows/config/labeler.yml +++ b/.github/workflows/config/labeler.yml @@ -277,6 +277,8 @@ integration/kubernetes_state_core: - kubernetes_state_core/**/* integration/kyototycoon: - kyototycoon/**/* +integration/kyverno: +- kyverno/**/* integration/langchain: - langchain/**/* integration/lighttpd: diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index c3a1b75b66094..12eb837cf44c0 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -2134,6 +2134,26 @@ jobs: minimum-base-package: ${{ inputs.minimum-base-package }} pytest-args: ${{ inputs.pytest-args }} secrets: inherit + j6900ead: + uses: ./.github/workflows/test-target.yml + with: + job-name: kyverno + target: kyverno + platform: linux + runner: '["ubuntu-22.04"]' + repo: "${{ inputs.repo }}" + python-version: "${{ inputs.python-version }}" + standard: ${{ inputs.standard }} + latest: ${{ inputs.latest }} + agent-image: "${{ inputs.agent-image }}" + agent-image-py2: "${{ inputs.agent-image-py2 }}" + agent-image-windows: "${{ inputs.agent-image-windows }}" + agent-image-windows-py2: "${{ inputs.agent-image-windows-py2 }}" + test-py2: ${{ inputs.test-py2 }} + test-py3: ${{ inputs.test-py3 }} + minimum-base-package: ${{ inputs.minimum-base-package }} + pytest-args: ${{ inputs.pytest-args }} + secrets: inherit j1c6adb2: uses: ./.github/workflows/test-target.yml with: diff --git a/kyverno/CHANGELOG.md b/kyverno/CHANGELOG.md new file mode 100644 index 0000000000000..4bcf059838a3e --- /dev/null +++ b/kyverno/CHANGELOG.md @@ -0,0 +1,4 @@ +# CHANGELOG - kyverno + + + diff --git a/kyverno/README.md b/kyverno/README.md new file mode 100644 index 0000000000000..86a9c4920ece6 --- /dev/null +++ b/kyverno/README.md @@ -0,0 +1,55 @@ +# Agent Check: kyverno + +## Overview + +This check monitors [kyverno][1] through the Datadog Agent. + +## Setup + +Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the [Autodiscovery Integration Templates][3] for guidance on applying these instructions. + +### Installation + +The kyverno check is included in the [Datadog Agent][2] package. +No additional installation is needed on your server. + +### Configuration + +1. Edit the `kyverno.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to start collecting your kyverno performance data. See the [sample kyverno.d/conf.yaml][4] for all available configuration options. + +2. [Restart the Agent][5]. + +### Validation + +[Run the Agent's status subcommand][6] and look for `kyverno` under the Checks section. + +## Data Collected + +### Metrics + +See [metadata.csv][7] for a list of metrics provided by this integration. + +### Events + +The kyverno integration does not include any events. + +### Service Checks + +The kyverno integration does not include any service checks. + +See [service_checks.json][8] for a list of service checks provided by this integration. + +## Troubleshooting + +Need help? Contact [Datadog support][9]. + + +[1]: **LINK_TO_INTEGRATION_SITE** +[2]: https://app.datadoghq.com/account/settings/agent/latest +[3]: https://docs.datadoghq.com/agent/kubernetes/integrations/ +[4]: https://github.com/DataDog/integrations-core/blob/master/kyverno/datadog_checks/kyverno/data/conf.yaml.example +[5]: https://docs.datadoghq.com/agent/guide/agent-commands/#start-stop-and-restart-the-agent +[6]: https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information +[7]: https://github.com/DataDog/integrations-core/blob/master/kyverno/metadata.csv +[8]: https://github.com/DataDog/integrations-core/blob/master/kyverno/assets/service_checks.json +[9]: https://docs.datadoghq.com/help/ diff --git a/kyverno/assets/configuration/spec.yaml b/kyverno/assets/configuration/spec.yaml new file mode 100644 index 0000000000000..6567c13bc727c --- /dev/null +++ b/kyverno/assets/configuration/spec.yaml @@ -0,0 +1,10 @@ +name: kyverno +files: +- name: kyverno.yaml + options: + - template: init_config + options: + - template: init_config/default + - template: instances + options: + - template: instances/default diff --git a/kyverno/assets/service_checks.json b/kyverno/assets/service_checks.json new file mode 100644 index 0000000000000..8bc38fca07d26 --- /dev/null +++ b/kyverno/assets/service_checks.json @@ -0,0 +1,17 @@ +[ + { + "agent_version": "7.56.0", + "integration": "kyverno", + "check": "kyverno.openmetrics.health", + "statuses": [ + "ok", + "critical" + ], + "groups": [ + "host", + "endpoint" + ], + "name": "Kyverno OpenMetrics endpoint health", + "description": "Returns `CRITICAL` if the Agent is unable to connect to the Kyverno OpenMetrics endpoint, otherwise returns `OK`." + } +] \ No newline at end of file diff --git a/kyverno/changelog.d/17757.added b/kyverno/changelog.d/17757.added new file mode 100644 index 0000000000000..aa949b47b7b41 --- /dev/null +++ b/kyverno/changelog.d/17757.added @@ -0,0 +1 @@ +Initial Release \ No newline at end of file diff --git a/kyverno/datadog_checks/__init__.py b/kyverno/datadog_checks/__init__.py new file mode 100644 index 0000000000000..1517d901c0aae --- /dev/null +++ b/kyverno/datadog_checks/__init__.py @@ -0,0 +1,4 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore diff --git a/kyverno/datadog_checks/kyverno/__about__.py b/kyverno/datadog_checks/kyverno/__about__.py new file mode 100644 index 0000000000000..acbfd1c866b84 --- /dev/null +++ b/kyverno/datadog_checks/kyverno/__about__.py @@ -0,0 +1,4 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +__version__ = '1.0.0' diff --git a/kyverno/datadog_checks/kyverno/__init__.py b/kyverno/datadog_checks/kyverno/__init__.py new file mode 100644 index 0000000000000..f24b6d0529e4e --- /dev/null +++ b/kyverno/datadog_checks/kyverno/__init__.py @@ -0,0 +1,7 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +from .__about__ import __version__ +from .check import KyvernoCheck + +__all__ = ['__version__', 'KyvernoCheck'] diff --git a/kyverno/datadog_checks/kyverno/check.py b/kyverno/datadog_checks/kyverno/check.py new file mode 100644 index 0000000000000..28162d3b800df --- /dev/null +++ b/kyverno/datadog_checks/kyverno/check.py @@ -0,0 +1,18 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +from datadog_checks.base import OpenMetricsBaseCheckV2 + +from .config_models import ConfigMixin +from .metrics import METRIC_MAP, RENAME_LABELS_MAP + + +class KyvernoCheck(OpenMetricsBaseCheckV2, ConfigMixin): + DEFAULT_METRIC_LIMIT = 0 + __NAMESPACE__ = 'kyverno' + + def get_default_config(self): + return { + 'metrics': [METRIC_MAP], + "rename_labels": RENAME_LABELS_MAP, + } diff --git a/kyverno/datadog_checks/kyverno/config_models/__init__.py b/kyverno/datadog_checks/kyverno/config_models/__init__.py new file mode 100644 index 0000000000000..106fff2032f68 --- /dev/null +++ b/kyverno/datadog_checks/kyverno/config_models/__init__.py @@ -0,0 +1,24 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +# This file is autogenerated. +# To change this file you should edit assets/configuration/spec.yaml and then run the following commands: +# ddev -x validate config -s +# ddev -x validate models -s + +from .instance import InstanceConfig +from .shared import SharedConfig + + +class ConfigMixin: + _config_model_instance: InstanceConfig + _config_model_shared: SharedConfig + + @property + def config(self) -> InstanceConfig: + return self._config_model_instance + + @property + def shared_config(self) -> SharedConfig: + return self._config_model_shared diff --git a/kyverno/datadog_checks/kyverno/config_models/defaults.py b/kyverno/datadog_checks/kyverno/config_models/defaults.py new file mode 100644 index 0000000000000..4d46152df5d40 --- /dev/null +++ b/kyverno/datadog_checks/kyverno/config_models/defaults.py @@ -0,0 +1,20 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +# This file is autogenerated. +# To change this file you should edit assets/configuration/spec.yaml and then run the following commands: +# ddev -x validate config -s +# ddev -x validate models -s + + +def instance_disable_generic_tags(): + return False + + +def instance_empty_default_hostname(): + return False + + +def instance_min_collection_interval(): + return 15 diff --git a/kyverno/datadog_checks/kyverno/config_models/instance.py b/kyverno/datadog_checks/kyverno/config_models/instance.py new file mode 100644 index 0000000000000..56acae21ba432 --- /dev/null +++ b/kyverno/datadog_checks/kyverno/config_models/instance.py @@ -0,0 +1,61 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +# This file is autogenerated. +# To change this file you should edit assets/configuration/spec.yaml and then run the following commands: +# ddev -x validate config -s +# ddev -x validate models -s + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, ConfigDict, field_validator, model_validator + +from datadog_checks.base.utils.functions import identity +from datadog_checks.base.utils.models import validation + +from . import defaults, validators + + +class MetricPatterns(BaseModel): + model_config = ConfigDict( + arbitrary_types_allowed=True, + frozen=True, + ) + exclude: Optional[tuple[str, ...]] = None + include: Optional[tuple[str, ...]] = None + + +class InstanceConfig(BaseModel): + model_config = ConfigDict( + validate_default=True, + arbitrary_types_allowed=True, + frozen=True, + ) + disable_generic_tags: Optional[bool] = None + empty_default_hostname: Optional[bool] = None + metric_patterns: Optional[MetricPatterns] = None + min_collection_interval: Optional[float] = None + service: Optional[str] = None + tags: Optional[tuple[str, ...]] = None + + @model_validator(mode='before') + def _initial_validation(cls, values): + return validation.core.initialize_config(getattr(validators, 'initialize_instance', identity)(values)) + + @field_validator('*', mode='before') + def _validate(cls, value, info): + field = cls.model_fields[info.field_name] + field_name = field.alias or info.field_name + if field_name in info.context['configured_fields']: + value = getattr(validators, f'instance_{info.field_name}', identity)(value, field=field) + else: + value = getattr(defaults, f'instance_{info.field_name}', lambda: value)() + + return validation.utils.make_immutable(value) + + @model_validator(mode='after') + def _final_validation(cls, model): + return validation.core.check_model(getattr(validators, 'check_instance', identity)(model)) diff --git a/kyverno/datadog_checks/kyverno/config_models/shared.py b/kyverno/datadog_checks/kyverno/config_models/shared.py new file mode 100644 index 0000000000000..e39d447dfc4b9 --- /dev/null +++ b/kyverno/datadog_checks/kyverno/config_models/shared.py @@ -0,0 +1,45 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +# This file is autogenerated. +# To change this file you should edit assets/configuration/spec.yaml and then run the following commands: +# ddev -x validate config -s +# ddev -x validate models -s + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, ConfigDict, field_validator, model_validator + +from datadog_checks.base.utils.functions import identity +from datadog_checks.base.utils.models import validation + +from . import validators + + +class SharedConfig(BaseModel): + model_config = ConfigDict( + validate_default=True, + arbitrary_types_allowed=True, + frozen=True, + ) + service: Optional[str] = None + + @model_validator(mode='before') + def _initial_validation(cls, values): + return validation.core.initialize_config(getattr(validators, 'initialize_shared', identity)(values)) + + @field_validator('*', mode='before') + def _validate(cls, value, info): + field = cls.model_fields[info.field_name] + field_name = field.alias or info.field_name + if field_name in info.context['configured_fields']: + value = getattr(validators, f'shared_{info.field_name}', identity)(value, field=field) + + return validation.utils.make_immutable(value) + + @model_validator(mode='after') + def _final_validation(cls, model): + return validation.core.check_model(getattr(validators, 'check_shared', identity)(model)) diff --git a/kyverno/datadog_checks/kyverno/config_models/validators.py b/kyverno/datadog_checks/kyverno/config_models/validators.py new file mode 100644 index 0000000000000..70150e85e6124 --- /dev/null +++ b/kyverno/datadog_checks/kyverno/config_models/validators.py @@ -0,0 +1,13 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +# Here you can include additional config validators or transformers +# +# def initialize_instance(values, **kwargs): +# if 'my_option' not in values and 'my_legacy_option' in values: +# values['my_option'] = values['my_legacy_option'] +# if values.get('my_number') > 10: +# raise ValueError('my_number max value is 10, got %s' % str(values.get('my_number'))) +# +# return values diff --git a/kyverno/datadog_checks/kyverno/data/conf.yaml.example b/kyverno/datadog_checks/kyverno/data/conf.yaml.example new file mode 100644 index 0000000000000..57b46cc14ac44 --- /dev/null +++ b/kyverno/datadog_checks/kyverno/data/conf.yaml.example @@ -0,0 +1,55 @@ +## All options defined here are available to all instances. +# +init_config: + + ## @param service - string - optional + ## Attach the tag `service:` to every metric, event, and service check emitted by this integration. + ## + ## Additionally, this sets the default `service` for every log source. + # + # service: + +## Every instance is scheduled independently of the others. +# +instances: + + - + ## @param tags - list of strings - optional + ## A list of tags to attach to every metric and service check emitted by this instance. + ## + ## Learn more about tagging at https://docs.datadoghq.com/tagging + # + # tags: + # - : + # - : + + ## @param service - string - optional + ## Attach the tag `service:` to every metric, event, and service check emitted by this integration. + ## + ## Overrides any `service` defined in the `init_config` section. + # + # service: + + ## @param min_collection_interval - number - optional - default: 15 + ## This changes the collection interval of the check. For more information, see: + ## https://docs.datadoghq.com/developers/write_agent_check/#collection-interval + # + # min_collection_interval: 15 + + ## @param empty_default_hostname - boolean - optional - default: false + ## This forces the check to send metrics with no hostname. + ## + ## This is useful for cluster-level checks. + # + # empty_default_hostname: false + + ## @param metric_patterns - mapping - optional + ## A mapping of metrics to include or exclude, with each entry being a regular expression. + ## + ## Metrics defined in `exclude` will take precedence in case of overlap. + # + # metric_patterns: + # include: + # - + # exclude: + # - diff --git a/kyverno/datadog_checks/kyverno/metrics.py b/kyverno/datadog_checks/kyverno/metrics.py new file mode 100644 index 0000000000000..7234c34bae29e --- /dev/null +++ b/kyverno/datadog_checks/kyverno/metrics.py @@ -0,0 +1,73 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +METRIC_MAP = { + # Generic Metrics: + 'controller_clientset_k8s_request': 'controller.clientset.k8s.request', + 'go_gc_duration_seconds': 'go.gc.duration.seconds', + 'go_goroutines': 'go.goroutines', + 'go_info': "go.info", + 'go_memstats_alloc_bytes': {'name': 'go.memstats.alloc_bytes', 'type': 'native_dynamic'}, + 'go_memstats_buck_hash_sys_bytes': 'go.memstats.buck_hash.sys_bytes', + 'go_memstats_frees': 'go.memstats.frees', + 'go_memstats_gc_cpu_fraction': 'go.memstats.gc.cpu_fraction', + 'go_memstats_gc_sys_bytes': 'go.memstats.gc.sys_bytes', + 'go_memstats_heap_alloc_bytes': 'go.memstats.heap.alloc_bytes', + 'go_memstats_heap_idle_bytes': 'go.memstats.heap.idle_bytes', + 'go_memstats_heap_inuse_bytes': 'go.memstats.heap.inuse_bytes', + 'go_memstats_heap_objects': 'go.memstats.heap.objects', + 'go_memstats_heap_released_bytes': 'go.memstats.heap.released_bytes', + 'go_memstats_heap_sys_bytes': 'go.memstats.heap.sys_bytes', + 'go_memstats_lookups': 'go.memstats.lookups', + 'go_memstats_mallocs': 'go.memstats.mallocs', + 'go_memstats_mcache_inuse_bytes': 'go.memstats.mcache.inuse_bytes', + 'go_memstats_mcache_sys_bytes': 'go.memstats.mcache.sys_bytes', + 'go_memstats_mspan_inuse_bytes': 'go.memstats.mspan.inuse_bytes', + 'go_memstats_mspan_sys_bytes': 'go.memstats.mspan.sys_bytes', + 'go_memstats_next_gc_bytes': 'go.memstats.next.gc_bytes', + 'go_memstats_other_sys_bytes': 'go.memstats.other.sys_bytes', + 'go_memstats_stack_inuse_bytes': 'go.memstats.stack.inuse_bytes', + 'go_memstats_stack_sys_bytes': 'go.memstats.stack.sys_bytes', + 'go_memstats_sys_bytes': 'go.memstats.sys_bytes', + 'go_threads': 'go.threads', + 'process_cpu_seconds': 'process.cpu.seconds', + 'process_max_fds': 'process.max_fds', + 'process_open_fds': 'process.open_fds', + 'process_resident_memory_bytes': 'process.resident_memory.bytes', + 'process_start_time_seconds': 'process.start_time.seconds', + 'process_virtual_memory_bytes': 'process.virtual_memory.bytes', + 'process_virtual_memory_max_bytes': 'process.virtual_memory.max_bytes', + 'workqueue_adds': 'workqueue.adds', + 'workqueue_depth': 'workqueue.depth', + 'workqueue_longest_running_processor_seconds': 'workqueue.longest.running_processor.seconds', + 'workqueue_queue_duration_seconds': 'workqueue.queue.duration.seconds', + 'workqueue_retries': 'workqueue.retries', + 'workqueue_unfinished_work_seconds': 'workqueue.unfinished_work.seconds', + 'workqueue_work_duration_seconds': 'workqueue.work.duration.seconds', + # Kyverno specific metrics: + 'kyverno_policy_changes': 'policy.changes', + 'kyverno_controller_requeue': 'controller.requeue', + 'kyverno_controller_reconcile': 'controller.reconcile', + 'kyverno_controller_drop': 'controller.drop', + 'kyverno_client_queries': 'client.queries', + 'kyverno_ttl_controller_errors': 'ttl.controller.errors', + 'kyverno_ttl_controller_deletedobjects': 'ttl.controller.deletedobjects', + 'kyverno_cleanup_controller_deletedobjects': 'cleanup.controller.deletedobjects', + 'kyverno_cleanup_controller_errors': 'cleanup.controller.errors', + 'kyverno_admission_requests': 'admission.requests', + 'kyverno_admission_review_duration_seconds': 'admission.review.duration.seconds', + 'kyverno_policy_execution_duration_seconds': 'policy.execution.duration.seconds', + 'kyverno_http_requests_duration_seconds': 'http.requests.duration.seconds', + 'kyverno_http_requests': 'http.requests', + 'kyverno_policy_results': 'policy.requests', + 'kyverno_policy_rule_info': 'policy.rule.info', +} + + +RENAME_LABELS_MAP = { + 'version': 'go_version', + # These don't actually exist, but in the off chance they do we should remap them to not conflict with + # regular generic tags. + 'name': 'kyverno_name', + 'namespace': 'kyverno_namespace', +} diff --git a/kyverno/hatch.toml b/kyverno/hatch.toml new file mode 100644 index 0000000000000..001e43ce25414 --- /dev/null +++ b/kyverno/hatch.toml @@ -0,0 +1,4 @@ +[env.collectors.datadog-checks] + +[[envs.default.matrix]] +python = ["3.11"] diff --git a/kyverno/images/IMAGES_README.md b/kyverno/images/IMAGES_README.md new file mode 100644 index 0000000000000..c915b722acace --- /dev/null +++ b/kyverno/images/IMAGES_README.md @@ -0,0 +1,46 @@ +# Marketplace Media Carousel Guidelines + +## Using the media gallery + +To use the media gallery, you must upload a minimum of one image. The gallery +can hold a maximum of 8 pieces of media total, and one of these pieces of media +can be a video (guidelines and submission steps below). Images should be +added to your /images directory and referenced in the manifest.json file. + + +## Image and video requirements + +### Images + +``` +File type : .jpg or .png +File size : ~500 KB per image, with a max of 1 MB per image +File dimensions : The aspect ratio must be 16:9 minimum, with these constraints: + + Width: 1440px + Min height: 810px + Max height: 2560px + +File name : Use only letters, numbers, underscores, and hyphens +Color mode : RGB +Color profile : sRGB +Description : 300 characters maximum +``` + +### Video + +To display a video in your media gallery, please send our team the zipped file +or a link to download the video at `marketplace@datadog.com`. In addition, +please upload a thumbnail image for your video as a part of the pull request. +Once approved, we will upload the file to Vimeo and provide you with the +vimeo_id to add to your manifest.json file. Please note that the gallery can +only hold one video. + +``` +File type : MP4 H.264 +File size : Max 1 video; 1 GB maximum size +File dimensions : The aspect ratio must be exactly 16:9, and the resolution must be 1920x1080 or higher +File name : partnerName-appName.mp4 +Run time : Recommendation of 60 seconds or less +Description : 300 characters maximum +``` diff --git a/kyverno/manifest.json b/kyverno/manifest.json new file mode 100644 index 0000000000000..3af80705f91c1 --- /dev/null +++ b/kyverno/manifest.json @@ -0,0 +1,52 @@ +{ + "manifest_version": "2.0.0", + "app_uuid": "125b7209-7617-4bf5-a88c-a4e1f0fa211d", + "app_id": "kyverno", + "display_on_public_website": false, + "tile": { + "overview": "README.md#Overview", + "configuration": "README.md#Setup", + "support": "README.md#Support", + "changelog": "CHANGELOG.md", + "description": "Monitor the health and performance of Kyverno", + "title": "kyverno", + "media": [], + "classifier_tags": [ + "Supported OS::Linux", + "Supported OS::Windows", + "Supported OS::macOS", + "Category::Metrics", + "Category::Kubernetes", + "Category::Security", + "Submitted Data Type::Metrics" + ] + }, + "assets": { + "integration": { + "auto_install": true, + "source_type_id": 17459094, + "source_type_name": "kyverno", + "configuration": { + "spec": "assets/configuration/spec.yaml" + }, + "events": { + "creates_events": false + }, + "metrics": { + "prefix": "kyverno.", + "check": "", + "metadata_path": "metadata.csv" + }, + "service_checks": { + "metadata_path": "assets/service_checks.json" + } + } + }, + "author": { + "support_email": "help@datadoghq.com", + "name": "Datadog", + "homepage": "https://www.datadoghq.com", + "sales_email": "info@datadoghq.com" + }, + "oauth": {} +} diff --git a/kyverno/metadata.csv b/kyverno/metadata.csv new file mode 100644 index 0000000000000..3bd3402a489ae --- /dev/null +++ b/kyverno/metadata.csv @@ -0,0 +1 @@ +metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags, diff --git a/kyverno/pyproject.toml b/kyverno/pyproject.toml new file mode 100644 index 0000000000000..8769aace3c165 --- /dev/null +++ b/kyverno/pyproject.toml @@ -0,0 +1,60 @@ +[build-system] +requires = [ + "hatchling>=0.13.0", +] +build-backend = "hatchling.build" + +[project] +name = "datadog-kyverno" +description = "The kyverno check" +readme = "README.md" +license = "BSD-3-Clause" +requires-python = ">=3.9" +keywords = [ + "datadog", + "datadog agent", + "datadog check", + "kyverno", +] +authors = [ + { name = "Datadog", email = "packages@datadoghq.com" }, +] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "License :: OSI Approved :: BSD License", + "Private :: Do Not Upload", + "Programming Language :: Python :: 3.11", + "Topic :: System :: Monitoring", +] +dependencies = [ + "datadog-checks-base>=32.6.0", +] +dynamic = [ + "version", +] + +[project.optional-dependencies] +deps = [] + +[project.urls] +Source = "https://github.com/DataDog/integrations-core" + +[tool.hatch.version] +path = "datadog_checks/kyverno/__about__.py" + +[tool.hatch.build.targets.sdist] +include = [ + "/datadog_checks", + "/tests", + "/manifest.json", +] + +[tool.hatch.build.targets.wheel] +include = [ + "/datadog_checks/kyverno", +] +dev-mode-dirs = [ + ".", +] diff --git a/kyverno/tests/__init__.py b/kyverno/tests/__init__.py new file mode 100644 index 0000000000000..9103122bf028d --- /dev/null +++ b/kyverno/tests/__init__.py @@ -0,0 +1,3 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) diff --git a/kyverno/tests/common.py b/kyverno/tests/common.py new file mode 100644 index 0000000000000..2e1686cbce963 --- /dev/null +++ b/kyverno/tests/common.py @@ -0,0 +1,81 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +import os + +from datadog_checks.dev import get_here + +HERE = get_here() + +OM_MOCKED_INSTANCE = { + 'openmetrics_endpoint': 'http://kyverno:8000/metrics', + 'tags': ['test:tag'], +} + + +def get_fixture_path(filename): + return os.path.join(HERE, 'fixtures', filename) + + +COMMON_METRICS = [ + 'kyverno.client.queries.count', + 'kyverno.controller.reconcile.count', + 'kyverno.go.gc.duration.seconds.count', + 'kyverno.go.gc.duration.seconds.quantile', + 'kyverno.go.gc.duration.seconds.sum', + 'kyverno.go.goroutines', + 'kyverno.go.info', + 'kyverno.go.memstats.alloc_bytes', + 'kyverno.go.memstats.alloc_bytes.count', + 'kyverno.go.memstats.buck_hash.sys_bytes', + 'kyverno.go.memstats.frees.count', + 'kyverno.go.memstats.gc.sys_bytes', + 'kyverno.go.memstats.heap.alloc_bytes', + 'kyverno.go.memstats.heap.idle_bytes', + 'kyverno.go.memstats.heap.inuse_bytes', + 'kyverno.go.memstats.heap.objects', + 'kyverno.go.memstats.heap.released_bytes', + 'kyverno.go.memstats.heap.sys_bytes', + 'kyverno.go.memstats.lookups.count', + 'kyverno.go.memstats.mallocs.count', + 'kyverno.go.memstats.mcache.inuse_bytes', + 'kyverno.go.memstats.mcache.sys_bytes', + 'kyverno.go.memstats.mspan.inuse_bytes', + 'kyverno.go.memstats.mspan.sys_bytes', + 'kyverno.go.memstats.next.gc_bytes', + 'kyverno.go.memstats.other.sys_bytes', + 'kyverno.go.memstats.stack.inuse_bytes', + 'kyverno.go.memstats.stack.sys_bytes', + 'kyverno.go.memstats.sys_bytes', + 'kyverno.go.threads', + 'kyverno.process.cpu.seconds.count', + 'kyverno.process.max_fds', + 'kyverno.process.open_fds', + 'kyverno.process.resident_memory.bytes', + 'kyverno.process.start_time.seconds', + 'kyverno.process.virtual_memory.bytes', + 'kyverno.process.virtual_memory.max_bytes', +] + + +REPORTS_METRICS = [ + 'kyverno.controller.requeue.count', + 'kyverno.policy.execution.duration.seconds.bucket', + 'kyverno.policy.execution.duration.seconds.count', + 'kyverno.policy.execution.duration.seconds.sum', + 'kyverno.policy.requests.count', +] + +BACKGROUND_METRICS = [ + 'kyverno.policy.changes.count', +] + +ADMISSION_METRICS = [ + 'kyverno.http.requests.count', + 'kyverno.http.requests.duration.seconds.bucket', + 'kyverno.http.requests.duration.seconds.count', + 'kyverno.http.requests.duration.seconds.sum', + 'kyverno.policy.changes.count', +] + +CLEANUP_METRICS = [] diff --git a/kyverno/tests/conftest.py b/kyverno/tests/conftest.py new file mode 100644 index 0000000000000..d75c270f964d7 --- /dev/null +++ b/kyverno/tests/conftest.py @@ -0,0 +1,57 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +import os +from contextlib import ExitStack + +import pytest + +from datadog_checks.dev import get_here +from datadog_checks.dev.kind import kind_run +from datadog_checks.dev.kube_port_forward import port_forward +from datadog_checks.dev.subprocess import run_command + +HERE = get_here() + + +def setup_kyverno(): + run_command(['kubectl', 'create', 'ns', 'kyverno']) + run_command(['kubectl', 'create', '-f', os.path.join(HERE, 'kind', 'kyverno_install.yaml')]) + run_command(['kubectl', 'create', '-f', os.path.join(HERE, 'kind', 'kyverno-policies_install.yaml')]) + + # Tries to ensure that the Kubernetes resources are deployed and ready before we do anything else + deployments = [ + 'kyverno-admission-controller', + 'kyverno-background-controller', + 'kyverno-cleanup-controller', + 'kyverno-reports-controller', + ] + for deployment in deployments: + run_command(['kubectl', 'rollout', 'status', f'deployment/{deployment}', '-n', 'kyverno']) + + run_command(['kubectl', 'wait', 'pods', '--all', '-n', 'kyverno', '--for=condition=Ready', '--timeout=600s']) + + +@pytest.fixture(scope='session') +def dd_environment(): + with kind_run(conditions=[setup_kyverno], sleep=30) as kubeconfig, ExitStack() as stack: + kyverno_host1, kyverno_port1 = stack.enter_context( + port_forward(kubeconfig, 'kyverno', 8000, 'deployment', 'kyverno-admission-controller'), + ) + kyverno_host2, kyverno_port2 = stack.enter_context( + port_forward(kubeconfig, 'kyverno', 8000, 'deployment', 'kyverno-background-controller'), + ) + kyverno_host3, kyverno_port3 = stack.enter_context( + port_forward(kubeconfig, 'kyverno', 8000, 'deployment', 'kyverno-cleanup-controller'), + ) + kyverno_host4, kyverno_port4 = stack.enter_context( + port_forward(kubeconfig, 'kyverno', 8000, 'deployment', 'kyverno-reports-controller'), + ) + instances = [ + {'openmetrics_endpoint': f'http://{kyverno_host1}:{kyverno_port1}/metrics'}, + {'openmetrics_endpoint': f'http://{kyverno_host2}:{kyverno_port2}/metrics'}, + {'openmetrics_endpoint': f'http://{kyverno_host3}:{kyverno_port3}/metrics'}, + {'openmetrics_endpoint': f'http://{kyverno_host4}:{kyverno_port4}/metrics'}, + ] + + yield {'instances': instances} diff --git a/kyverno/tests/fixtures/admission_controller.txt b/kyverno/tests/fixtures/admission_controller.txt new file mode 100644 index 0000000000000..487581216a7df --- /dev/null +++ b/kyverno/tests/fixtures/admission_controller.txt @@ -0,0 +1,278 @@ +# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 4.275e-05 +go_gc_duration_seconds{quantile="0.25"} 5.5541e-05 +go_gc_duration_seconds{quantile="0.5"} 8.3709e-05 +go_gc_duration_seconds{quantile="0.75"} 0.000184543 +go_gc_duration_seconds{quantile="1"} 0.00282675 +go_gc_duration_seconds_sum 0.763286286 +go_gc_duration_seconds_count 3117 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 247 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.21.10"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 1.7677696e+07 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 3.9614081856e+10 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 3.653476e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 2.81299728e+08 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 5.465512e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 1.7677696e+07 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 2.1078016e+07 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 2.9876224e+07 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 112304 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 1.3238272e+07 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 5.095424e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.7192515440611184e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 0 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 2.81412032e+08 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 12000 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 15600 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 615888 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 928872 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 3.1691144e+07 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 2.033316e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 3.571712e+06 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 3.571712e+06 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 6.6622728e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 16 +# HELP http_server_duration Measures the duration of inbound HTTP requests. +# TYPE http_server_duration histogram +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="0.005"} 0 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="0.01"} 0 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="0.025"} 0 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="0.05"} 0 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="0.1"} 0 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="0.25"} 515 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="0.5"} 2023 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="1"} 4269 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="2.5"} 4329 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="5"} 4332 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="10"} 4332 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="15"} 4332 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="20"} 4332 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="25"} 4332 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="30"} 4332 +http_server_duration_bucket{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0",le="+Inf"} 4332 +http_server_duration_sum{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0"} 2173.4379630000035 +http_server_duration_count{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0"} 4332 +# HELP http_server_request_size_total Measures the size of HTTP request messages. +# TYPE http_server_request_size_total counter +http_server_request_size_total{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0"} 9.914526e+06 +# HELP http_server_response_size_total Measures the size of HTTP response messages. +# TYPE http_server_response_size_total counter +http_server_response_size_total{http_method="POST",http_scheme="https",http_status_code="200",net_host_name="kyverno-svc.kyverno.svc",net_protocol_name="http",net_protocol_version="1.1",otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0"} 1.1019186e+07 +# HELP kyverno_client_queries_total can be used to track the number of client queries sent from Kyverno to the API-server +# TYPE kyverno_client_queries_total counter +kyverno_client_queries_total{client_type="apiserver",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="CustomResourceDefinition",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 2 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="MutatingWebhookConfiguration",resource_namespace=""} 3 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 2 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ValidatingWebhookConfiguration",resource_namespace=""} 4 +kyverno_client_queries_total{client_type="kubeclient",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 21572 +kyverno_client_queries_total{client_type="kubeclient",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 8694 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterRole",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterRoleBinding",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Deployment",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="MutatingWebhookConfiguration",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Namespace",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="RoleBinding",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 3 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ValidatingWebhookConfiguration",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="rest_client",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="server_groups",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 49 +kyverno_client_queries_total{client_type="kubeclient",operation="server_resources_for_group_version",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 1568 +kyverno_client_queries_total{client_type="kubeclient",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 25903 +kyverno_client_queries_total{client_type="kubeclient",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="MutatingWebhookConfiguration",resource_namespace=""} 4547 +kyverno_client_queries_total{client_type="kubeclient",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ValidatingWebhookConfiguration",resource_namespace=""} 4547 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterRole",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterRoleBinding",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace="kyverno"} 96 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Deployment",resource_namespace="kyverno"} 99 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 95 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="MutatingWebhookConfiguration",resource_namespace=""} 96 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Namespace",resource_namespace=""} 96 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="RoleBinding",resource_namespace=""} 95 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 290 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ValidatingWebhookConfiguration",resource_namespace=""} 100 +kyverno_client_queries_total{client_type="kyverno",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterPolicy",resource_namespace=""} 194832 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterPolicy",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="GlobalContextEntry",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Policy",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyException",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="UpdateRequest",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="update_status",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterPolicy",resource_namespace=""} 97416 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterPolicy",resource_namespace=""} 195 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="GlobalContextEntry",resource_namespace=""} 191 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Policy",resource_namespace=""} 190 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyException",resource_namespace=""} 96 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="UpdateRequest",resource_namespace=""} 98 +# HELP kyverno_controller_reconcile_total can be used to track number of reconciliation cycles +# TYPE kyverno_controller_reconcile_total counter +kyverno_controller_reconcile_total{controller_name="certmanager-controller",otel_scope_name="kyverno",otel_scope_version=""} 5 +kyverno_controller_reconcile_total{controller_name="config-controller",otel_scope_name="kyverno",otel_scope_version=""} 1 +kyverno_controller_reconcile_total{controller_name="exception-webhook-controller",otel_scope_name="kyverno",otel_scope_version=""} 68 +kyverno_controller_reconcile_total{controller_name="global-context-webhook-controller",otel_scope_name="kyverno",otel_scope_version=""} 68 +kyverno_controller_reconcile_total{controller_name="metrics-config-controller",otel_scope_name="kyverno",otel_scope_version=""} 1 +kyverno_controller_reconcile_total{controller_name="policycache-controller",otel_scope_name="kyverno",otel_scope_version=""} 209 +kyverno_controller_reconcile_total{controller_name="webhook-controller",otel_scope_name="kyverno",otel_scope_version=""} 9012 +# HELP kyverno_http_requests_duration_seconds can be used to track the latencies (in seconds) associated with the entire individual http request. +# TYPE kyverno_http_requests_duration_seconds histogram +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="0.005"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="0.01"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="0.025"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="0.05"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="0.1"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="0.25"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="0.5"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="1"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="2.5"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="5"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="10"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="15"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="20"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="25"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="30"} 4332 +kyverno_http_requests_duration_seconds_bucket{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version="",le="+Inf"} 4332 +kyverno_http_requests_duration_seconds_sum{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version=""} 1.7992437500000007 +kyverno_http_requests_duration_seconds_count{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version=""} 4332 +# HELP kyverno_http_requests_total can be used to track the number of http requests +# TYPE kyverno_http_requests_total counter +kyverno_http_requests_total{http_method="POST",http_url="/verifymutate?timeout=10s",otel_scope_name="kyverno",otel_scope_version=""} 4332 +# HELP kyverno_policy_changes_total can be used to track all the changes associated with the Kyverno policies present on the cluster such as creation, updates and deletions +# TYPE kyverno_policy_changes_total counter +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +# HELP kyverno_policy_rule_info_total can be used to track the info of the rules or/and policies present in the cluster. 0 means the rule doesn't exist and has been deleted, 1 means the rule is currently existent in the cluster +# TYPE kyverno_policy_rule_info_total gauge +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="adding-capabilities",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-adding-capabilities",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-adding-capabilities",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-host-namespaces",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-host-namespaces",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="host-namespaces",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-host-path",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-host-path",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="host-path",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-host-ports-none",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-host-ports-none",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="host-ports-none",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-host-process-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-host-process-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="host-process-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-privileged-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-privileged-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="privileged-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-check-proc-mount",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-check-proc-mount",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="check-proc-mount",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-selinux-type",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-selinux-user-role",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-selinux-type",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-selinux-user-role",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="selinux-type",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="selinux-user-role",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="app-armor",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-app-armor",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-app-armor",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-check-seccomp",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-check-seccomp",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="check-seccomp",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-check-sysctls",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-check-sysctls",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="check-sysctls",rule_type="validate",status_ready="true"} 1 +# HELP otel_scope_info Instrumentation Scope metadata +# TYPE otel_scope_info gauge +otel_scope_info{otel_scope_name="go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",otel_scope_version="0.49.0"} 1 +otel_scope_info{otel_scope_name="kyverno",otel_scope_version=""} 1 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 428.43 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 11 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 1.2783616e+08 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.71920821207e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 5.652430848e+09 +# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes. +# TYPE process_virtual_memory_max_bytes gauge +process_virtual_memory_max_bytes 1.8446744073709552e+19 +# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served. +# TYPE promhttp_metric_handler_requests_in_flight gauge +promhttp_metric_handler_requests_in_flight 1 +# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code. +# TYPE promhttp_metric_handler_requests_total counter +promhttp_metric_handler_requests_total{code="200"} 0 +promhttp_metric_handler_requests_total{code="500"} 0 +promhttp_metric_handler_requests_total{code="503"} 0 \ No newline at end of file diff --git a/kyverno/tests/fixtures/background_controller.txt b/kyverno/tests/fixtures/background_controller.txt new file mode 100644 index 0000000000000..fef95266488f7 --- /dev/null +++ b/kyverno/tests/fixtures/background_controller.txt @@ -0,0 +1,199 @@ +# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 4.7125e-05 +go_gc_duration_seconds{quantile="0.25"} 0.000167917 +go_gc_duration_seconds{quantile="0.5"} 0.000265875 +go_gc_duration_seconds{quantile="0.75"} 0.000434 +go_gc_duration_seconds{quantile="1"} 0.023618 +go_gc_duration_seconds_sum 0.199828295 +go_gc_duration_seconds_count 369 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 153 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.21.10"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 1.2239568e+07 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 1.113144408e+09 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.661837e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 1.3466682e+07 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 5.23756e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 1.2239568e+07 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 2.5010176e+07 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 2.371584e+07 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 73591 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 2.2134784e+07 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 4.8726016e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.7192515735991418e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 0 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 1.3540273e+07 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 12000 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 15600 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 493248 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 863688 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 2.5291848e+07 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 1.631115e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 1.605632e+06 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 1.605632e+06 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 5.9741448e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 15 +# HELP kyverno_client_queries_total can be used to track the number of client queries sent from Kyverno to the API-server +# TYPE kyverno_client_queries_total counter +kyverno_client_queries_total{client_type="apiserver",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="CustomResourceDefinition",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 21586 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Namespace",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="rest_client",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 21585 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace=""} 94 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace="kyverno"} 95 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Namespace",resource_namespace=""} 97 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 97 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterPolicy",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="GlobalContextEntry",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Policy",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyException",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="UpdateRequest",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterPolicy",resource_namespace=""} 188 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="GlobalContextEntry",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Policy",resource_namespace=""} 194 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyException",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="UpdateRequest",resource_namespace=""} 98 +# HELP kyverno_controller_reconcile_total can be used to track number of reconciliation cycles +# TYPE kyverno_controller_reconcile_total counter +kyverno_controller_reconcile_total{controller_name="config-controller",otel_scope_name="kyverno",otel_scope_version=""} 1 +kyverno_controller_reconcile_total{controller_name="metrics-config-controller",otel_scope_name="kyverno",otel_scope_version=""} 1 +# HELP kyverno_policy_changes_total can be used to track all the changes associated with the Kyverno policies present on the cluster such as creation, updates and deletions +# TYPE kyverno_policy_changes_total counter +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +kyverno_policy_changes_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_change_type="created",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit"} 1 +# HELP kyverno_policy_rule_info_total can be used to track the info of the rules or/and policies present in the cluster. 0 means the rule doesn't exist and has been deleted, 1 means the rule is currently existent in the cluster +# TYPE kyverno_policy_rule_info_total gauge +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="adding-capabilities",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-adding-capabilities",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-adding-capabilities",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-host-namespaces",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-host-namespaces",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="host-namespaces",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-host-path",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-host-path",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="host-path",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-host-ports-none",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-host-ports-none",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="host-ports-none",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-host-process-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-host-process-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="host-process-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-privileged-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-privileged-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="privileged-containers",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-check-proc-mount",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-check-proc-mount",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="check-proc-mount",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-selinux-type",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-selinux-user-role",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-selinux-type",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-selinux-user-role",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="selinux-type",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="selinux-user-role",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="app-armor",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-app-armor",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-app-armor",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-check-seccomp",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-check-seccomp",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="check-seccomp",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-check-sysctls",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="autogen-cronjob-check-sysctls",rule_type="validate",status_ready="true"} 1 +kyverno_policy_rule_info_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",rule_name="check-sysctls",rule_type="validate",status_ready="true"} 1 +# HELP otel_scope_info Instrumentation Scope metadata +# TYPE otel_scope_info gauge +otel_scope_info{otel_scope_name="kyverno",otel_scope_version=""} 1 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 57.25 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 9 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 1.18243328e+08 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.71920820826e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 5.648142336e+09 +# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes. +# TYPE process_virtual_memory_max_bytes gauge +process_virtual_memory_max_bytes 1.8446744073709552e+19 +# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served. +# TYPE promhttp_metric_handler_requests_in_flight gauge +promhttp_metric_handler_requests_in_flight 1 +# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code. +# TYPE promhttp_metric_handler_requests_total counter +promhttp_metric_handler_requests_total{code="200"} 0 +promhttp_metric_handler_requests_total{code="500"} 0 +promhttp_metric_handler_requests_total{code="503"} 0 \ No newline at end of file diff --git a/kyverno/tests/fixtures/cleanup_controller.txt b/kyverno/tests/fixtures/cleanup_controller.txt new file mode 100644 index 0000000000000..1c7cef3eeed37 --- /dev/null +++ b/kyverno/tests/fixtures/cleanup_controller.txt @@ -0,0 +1,162 @@ +# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 4.1375e-05 +go_gc_duration_seconds{quantile="0.25"} 0.000111 +go_gc_duration_seconds{quantile="0.5"} 0.000181251 +go_gc_duration_seconds{quantile="0.75"} 0.000436668 +go_gc_duration_seconds{quantile="1"} 0.004275458 +go_gc_duration_seconds_sum 0.169629161 +go_gc_duration_seconds_count 486 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 185 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.21.10"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 1.1537144e+07 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 3.044825344e+09 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.875315e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 3.6312375e+07 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 4.898728e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 1.1537144e+07 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 6.88128e+06 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 1.5859712e+07 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 87879 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 4.194304e+06 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 2.2740992e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.7192509932166226e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 0 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 3.6400254e+07 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 12000 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 15600 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 368928 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 439992 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 1.6871336e+07 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 2.049093e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 2.424832e+06 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 2.424832e+06 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 3.4444552e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 16 +# HELP kyverno_client_queries_total can be used to track the number of client queries sent from Kyverno to the API-server +# TYPE kyverno_client_queries_total counter +kyverno_client_queries_total{client_type="apiserver",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="CustomResourceDefinition",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 2 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="SelfSubjectAccessReview",resource_namespace=""} 53550 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ValidatingWebhookConfiguration",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kubeclient",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 21333 +kyverno_client_queries_total{client_type="kubeclient",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 18 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Namespace",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 2 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ValidatingWebhookConfiguration",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="rest_client",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="server_preferred_resources",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 714 +kyverno_client_queries_total{client_type="kubeclient",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 21332 +kyverno_client_queries_total{client_type="kubeclient",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ValidatingWebhookConfiguration",resource_namespace=""} 94 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace=""} 100 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace="kyverno"} 96 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Namespace",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 191 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ValidatingWebhookConfiguration",resource_namespace=""} 97 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="CleanupPolicy",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterCleanupPolicy",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="GlobalContextEntry",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="CleanupPolicy",resource_namespace=""} 191 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterCleanupPolicy",resource_namespace=""} 193 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="GlobalContextEntry",resource_namespace=""} 97 +kyverno_client_queries_total{client_type="metadata",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="globalcontextentries",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="metadata",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="validatingwebhookconfigurations",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="metadata",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="globalcontextentries",resource_namespace=""} 93 +kyverno_client_queries_total{client_type="metadata",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="validatingwebhookconfigurations",resource_namespace=""} 94 +# HELP kyverno_controller_reconcile_total can be used to track number of reconciliation cycles +# TYPE kyverno_controller_reconcile_total counter +kyverno_controller_reconcile_total{controller_name="certmanager-controller",otel_scope_name="kyverno",otel_scope_version=""} 3 +kyverno_controller_reconcile_total{controller_name="config-controller",otel_scope_name="kyverno",otel_scope_version=""} 1 +kyverno_controller_reconcile_total{controller_name="policy-webhook-controller",otel_scope_name="kyverno",otel_scope_version=""} 67 +kyverno_controller_reconcile_total{controller_name="ttl-webhook-controller",otel_scope_name="kyverno",otel_scope_version=""} 67 +# HELP kyverno_ttl_controller_info can be used to track individual resource controllers running for ttl based cleanup +# TYPE kyverno_ttl_controller_info gauge +kyverno_ttl_controller_info{otel_scope_name="kyverno",otel_scope_version="",resource_group="admissionregistration.k8s.io",resource_resource="validatingwebhookconfigurations",resource_version="v1"} 1 +kyverno_ttl_controller_info{otel_scope_name="kyverno",otel_scope_version="",resource_group="kyverno.io",resource_resource="globalcontextentries",resource_version="v2alpha1"} 1 +# HELP otel_scope_info Instrumentation Scope metadata +# TYPE otel_scope_info gauge +otel_scope_info{otel_scope_name="kyverno",otel_scope_version=""} 1 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 150.7 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 10 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 9.056256e+07 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.71920820381e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 5.644857344e+09 +# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes. +# TYPE process_virtual_memory_max_bytes gauge +process_virtual_memory_max_bytes 1.8446744073709552e+19 +# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served. +# TYPE promhttp_metric_handler_requests_in_flight gauge +promhttp_metric_handler_requests_in_flight 1 +# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code. +# TYPE promhttp_metric_handler_requests_total counter +promhttp_metric_handler_requests_total{code="200"} 0 +promhttp_metric_handler_requests_total{code="500"} 0 +promhttp_metric_handler_requests_total{code="503"} 0 \ No newline at end of file diff --git a/kyverno/tests/fixtures/remap_labels.txt b/kyverno/tests/fixtures/remap_labels.txt new file mode 100644 index 0000000000000..498a142d3791a --- /dev/null +++ b/kyverno/tests/fixtures/remap_labels.txt @@ -0,0 +1,3 @@ +# HELP go_info This line is heavily modified to test label_remapping in the integration +# TYPE go_info gauge +go_info{version="go1.21.10", namespace="foo", name="baz"} 1 \ No newline at end of file diff --git a/kyverno/tests/fixtures/reports_controller.txt b/kyverno/tests/fixtures/reports_controller.txt new file mode 100644 index 0000000000000..bca6eb9ac0fc1 --- /dev/null +++ b/kyverno/tests/fixtures/reports_controller.txt @@ -0,0 +1,3070 @@ +# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 4e-05 +go_gc_duration_seconds{quantile="0.25"} 9.2208e-05 +go_gc_duration_seconds{quantile="0.5"} 0.000148499 +go_gc_duration_seconds{quantile="0.75"} 0.000329125 +go_gc_duration_seconds{quantile="1"} 0.003406583 +go_gc_duration_seconds_sum 0.667500106 +go_gc_duration_seconds_count 2550 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 224 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.21.10"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 1.813284e+07 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 2.8147382496e+10 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 4.366118e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 3.10334428e+08 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 5.582536e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 1.813284e+07 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 2.5608192e+07 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 2.9343744e+07 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 152824 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 2.37568e+07 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 5.4951936e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.7192512005156147e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 0 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 3.10487252e+08 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 12000 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 15600 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 632184 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 977760 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 2.8490856e+07 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 1.941194e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 3.76832e+06 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 3.76832e+06 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 7.1603464e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 16 +# HELP kyverno_client_queries_total can be used to track the number of client queries sent from Kyverno to the API-server +# TYPE kyverno_client_queries_total counter +kyverno_client_queries_total{client_type="apiserver",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="CustomResourceDefinition",resource_namespace=""} 4 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="cronjobs",resource_namespace="kyverno"} 350 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="daemonsets",resource_namespace="kube-system"} 137 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="deployments",resource_namespace="kube-system"} 71 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="deployments",resource_namespace="kyverno"} 284 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="deployments",resource_namespace="local-path-storage"} 70 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="jobs",resource_namespace="kyverno"} 737 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="pods",resource_namespace="kube-system"} 535 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="pods",resource_namespace="kyverno"} 984 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="pods",resource_namespace="local-path-storage"} 66 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="replicasets",resource_namespace="kube-system"} 69 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="replicasets",resource_namespace="kyverno"} 267 +kyverno_client_queries_total{client_type="dynamic",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="replicasets",resource_namespace="local-path-storage"} 67 +kyverno_client_queries_total{client_type="dynamic",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="cronjobs",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="dynamic",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="daemonsets",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="dynamic",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="deployments",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="dynamic",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="jobs",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="dynamic",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="pods",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="dynamic",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="replicasets",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="dynamic",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="replicationcontrollers",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="dynamic",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="statefulsets",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="dynamic",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="cronjobs",resource_namespace=""} 16 +kyverno_client_queries_total{client_type="dynamic",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="daemonsets",resource_namespace=""} 16 +kyverno_client_queries_total{client_type="dynamic",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="deployments",resource_namespace=""} 16 +kyverno_client_queries_total{client_type="dynamic",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="jobs",resource_namespace=""} 16 +kyverno_client_queries_total{client_type="dynamic",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="pods",resource_namespace=""} 16 +kyverno_client_queries_total{client_type="dynamic",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="replicasets",resource_namespace=""} 17 +kyverno_client_queries_total{client_type="dynamic",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="replicationcontrollers",resource_namespace=""} 15 +kyverno_client_queries_total{client_type="dynamic",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="statefulsets",resource_namespace=""} 16 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Event",resource_namespace="default"} 660 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Event",resource_namespace="kube-system"} 660 +kyverno_client_queries_total{client_type="kubeclient",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 21450 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Namespace",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="rest_client",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kubeclient",operation="server_groups",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 48 +kyverno_client_queries_total{client_type="kubeclient",operation="server_resources_for_group_version",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Discovery",resource_namespace=""} 1536 +kyverno_client_queries_total{client_type="kubeclient",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Lease",resource_namespace="kyverno"} 21449 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace=""} 99 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ConfigMap",resource_namespace="kyverno"} 96 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Namespace",resource_namespace=""} 97 +kyverno_client_queries_total{client_type="kubeclient",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Secret",resource_namespace="kyverno"} 96 +kyverno_client_queries_total{client_type="kyverno",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kube-system"} 265 +kyverno_client_queries_total{client_type="kyverno",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kyverno"} 1378 +kyverno_client_queries_total{client_type="kyverno",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="local-path-storage"} 67 +kyverno_client_queries_total{client_type="kyverno",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="kube-system"} 12 +kyverno_client_queries_total{client_type="kyverno",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="kyverno"} 947 +kyverno_client_queries_total{client_type="kyverno",operation="create",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="local-path-storage"} 3 +kyverno_client_queries_total{client_type="kyverno",operation="delete",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kube-system"} 265 +kyverno_client_queries_total{client_type="kyverno",operation="delete",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kyverno"} 1378 +kyverno_client_queries_total{client_type="kyverno",operation="delete",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="local-path-storage"} 67 +kyverno_client_queries_total{client_type="kyverno",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kube-system"} 812 +kyverno_client_queries_total{client_type="kyverno",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kyverno"} 2622 +kyverno_client_queries_total{client_type="kyverno",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="local-path-storage"} 203 +kyverno_client_queries_total{client_type="kyverno",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="kube-system"} 836 +kyverno_client_queries_total{client_type="kyverno",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="kyverno"} 2657 +kyverno_client_queries_total{client_type="kyverno",operation="get",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="local-path-storage"} 208 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterPolicy",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kube-system"} 836 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kyverno"} 2657 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="local-path-storage"} 208 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="GlobalContextEntry",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Policy",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="kyverno",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyException",resource_namespace=""} 2 +kyverno_client_queries_total{client_type="kyverno",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kube-system"} 547 +kyverno_client_queries_total{client_type="kyverno",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="kyverno"} 1244 +kyverno_client_queries_total{client_type="kyverno",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="EphemeralReport",resource_namespace="local-path-storage"} 136 +kyverno_client_queries_total{client_type="kyverno",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="kube-system"} 824 +kyverno_client_queries_total{client_type="kyverno",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="kyverno"} 1700 +kyverno_client_queries_total{client_type="kyverno",operation="update",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyReport",resource_namespace="local-path-storage"} 205 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ClusterPolicy",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="GlobalContextEntry",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="Policy",resource_namespace=""} 97 +kyverno_client_queries_total{client_type="kyverno",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="PolicyException",resource_namespace=""} 195 +kyverno_client_queries_total{client_type="metadata",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="clusterephemeralreports",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="metadata",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="clusterpolicyreports",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="metadata",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ephemeralreports",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="metadata",operation="list",otel_scope_name="kyverno",otel_scope_version="",resource_kind="policyreports",resource_namespace=""} 1 +kyverno_client_queries_total{client_type="metadata",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="clusterephemeralreports",resource_namespace=""} 98 +kyverno_client_queries_total{client_type="metadata",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="clusterpolicyreports",resource_namespace=""} 97 +kyverno_client_queries_total{client_type="metadata",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="ephemeralreports",resource_namespace=""} 94 +kyverno_client_queries_total{client_type="metadata",operation="watch",otel_scope_name="kyverno",otel_scope_version="",resource_kind="policyreports",resource_namespace=""} 93 +# HELP kyverno_controller_reconcile_total can be used to track number of reconciliation cycles +# TYPE kyverno_controller_reconcile_total counter +kyverno_controller_reconcile_total{controller_name="aggregate-report-controller",otel_scope_name="kyverno",otel_scope_version=""} 6794 +kyverno_controller_reconcile_total{controller_name="background-scan-controller",otel_scope_name="kyverno",otel_scope_version=""} 4603 +kyverno_controller_reconcile_total{controller_name="config-controller",otel_scope_name="kyverno",otel_scope_version=""} 1 +kyverno_controller_reconcile_total{controller_name="metrics-config-controller",otel_scope_name="kyverno",otel_scope_version=""} 1 +kyverno_controller_reconcile_total{controller_name="resource-report-controller",otel_scope_name="kyverno",otel_scope_version=""} 209 +# HELP kyverno_controller_requeue_total can be used to track number of reconciliation errors +# TYPE kyverno_controller_requeue_total counter +kyverno_controller_requeue_total{controller_name="background-scan-controller",num_requeues="1",otel_scope_name="kyverno",otel_scope_version=""} 2 +# HELP kyverno_policy_execution_duration_seconds can be used to track the latencies (in seconds) associated with the execution/processing of the individual rules under Kyverno policies whenever they evaluate incoming resource requests +# TYPE kyverno_policy_execution_duration_seconds histogram +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 169 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate"} 0.022572746 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate"} 0.005956041000000001 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 0.005154125 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 0.004623708 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 134 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 0.021271744000000016 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 0.006237042 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 554 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 0.090149247 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate"} 0.005345584 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 238 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 238 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 239 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 0.052177124999999984 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 239 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 694 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 0.10745994500000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 694 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 0.005918958000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 36 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 0.005255873 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 137 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 0.018241008999999992 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 137 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 0.006369667999999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="10"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="15"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="20"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="30"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 166 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate"} 0.01070740599999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="0.005"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="0.01"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="0.025"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="0.05"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="0.1"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="0.25"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="0.5"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="1"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="2.5"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="5"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="10"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="15"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="20"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="25"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="30"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate",le="+Inf"} 66 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate"} 0.004926291000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate"} 66 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 0.0012133349999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="1"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="10"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="15"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="20"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="25"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="30"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 134 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 0.007000125999999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 0.0014901229999999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="1"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="10"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="15"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="20"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="25"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="30"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 554 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 0.02789611999999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="0.005"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="0.01"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="0.025"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="0.05"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="0.1"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="0.25"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="0.5"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="1"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="2.5"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="5"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="10"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="15"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="20"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="25"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="30"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate",le="+Inf"} 198 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate"} 0.012204501000000001 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="1"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="5"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="10"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="15"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="20"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="25"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="30"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 64 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 0.0025134589999999996 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="1"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="5"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="10"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="15"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="20"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="25"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="30"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 680 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 0.029599305 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 680 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 0.001107836 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 0.001425293 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="1"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="10"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="15"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="20"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="25"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="30"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 133 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 0.0056275790000000015 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 0.0013821189999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="0.005"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="0.01"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="0.025"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="0.05"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="0.1"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="0.25"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="0.5"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="1"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="2.5"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="5"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="10"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="15"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="20"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="25"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="30"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate",le="+Inf"} 170 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate"} 0.007484376999999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate"} 170 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="0.005"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="0.01"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="0.025"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="0.05"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="0.1"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="0.25"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="0.5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="1"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="2.5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="10"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="15"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="20"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="25"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="30"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate",le="+Inf"} 67 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate"} 0.006829957000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 0.00120221 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.005"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.01"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.025"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.05"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.1"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.25"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.5"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="1"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="2.5"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="5"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="10"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="15"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="20"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="25"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="30"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="+Inf"} 138 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 0.004989414999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 138 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 0.001132624 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.005"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.01"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.025"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.05"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.1"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.25"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.5"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="1"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="2.5"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="5"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="10"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="15"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="20"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="25"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="30"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="+Inf"} 553 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 0.020794991 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 553 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="0.005"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="0.01"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="0.025"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="0.05"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="0.1"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="0.25"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="0.5"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="1"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="2.5"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="5"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="10"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="15"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="20"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="25"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="30"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate",le="+Inf"} 198 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate"} 0.015490870999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate"} 198 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.005"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.01"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.025"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.05"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="2.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="10"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="15"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="20"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="30"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="+Inf"} 65 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 0.0023612109999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.005"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.01"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.025"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.05"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.1"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.25"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.5"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="1"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="2.5"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="5"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="10"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="15"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="20"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="25"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="30"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="+Inf"} 685 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 0.025407509999999984 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 685 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 0.0012690839999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.005"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.01"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.025"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.05"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.1"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.25"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="1"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="2.5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="10"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="15"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="20"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="25"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="30"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="+Inf"} 36 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 0.001291167 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.005"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.01"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.025"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.05"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.1"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.25"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.5"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="1"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="2.5"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="5"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="10"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="15"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="20"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="25"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="30"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="+Inf"} 141 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 0.004955707999999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 0.001272961 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 165 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate"} 0.01419417399999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate"} 165 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 65 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 0.004687832 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 0.0021261640000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 131 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 0.011456456999999996 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 0.003674961 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 550 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 0.04759495699999994 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="1"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="5"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="10"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="15"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="20"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="25"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="30"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 258 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 0.017105956 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="1"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="5"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="10"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="15"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="20"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="25"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="30"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 675 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 0.041416894000000044 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 675 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 0.0018508749999999997 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 0.0024622550000000004 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 133 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 0.010447958000000005 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 0.001971336 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 164 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate"} 0.018110326000000017 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate"} 164 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 65 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 0.006845884999999997 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 0.0025039190000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 134 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 0.010708038000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 0.002692668 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 554 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 0.061151548 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 554 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="1"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="5"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="10"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="15"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="20"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="25"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="30"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 265 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 0.022087249 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 265 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="1"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="5"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="10"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="15"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="20"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="25"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="30"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 687 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 0.060943746000000014 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 687 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 0.0023883710000000007 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 0.0038210849999999997 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 133 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 0.015802864999999996 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 0.002523084000000001 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 166 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate"} 0.016402744000000007 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate"} 0.0042016269999999994 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 0.002608707 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 0.0026609169999999996 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 132 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 0.010041046 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 0.0020448779999999995 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 550 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 0.049704876 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate"} 0.002998294000000001 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="1"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="5"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="10"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="15"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="20"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="25"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="30"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 231 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 0.01575745900000001 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 231 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="10"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="15"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="20"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="30"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 682 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 0.05232453299999995 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 0.0021678319999999997 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 0.004576043 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 135 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 0.018695956 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 0.0024790840000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 166 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate"} 0.016311578000000004 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 67 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 0.007568624000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 0.0026527059999999995 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 135 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 0.009525379 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 0.002284416 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 550 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 0.049122626000000016 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 263 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 0.017672034000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 682 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 0.04813104200000004 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 0.0020991200000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 36 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 0.003596249 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 139 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 0.011583331000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 139 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 0.00227325 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="10"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="15"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="20"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="30"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 166 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate"} 0.021553669999999994 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 166 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate"} 0.020117422000000013 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="10"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="15"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="20"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="30"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 65 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 0.009065082999999996 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 65 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 0.008428292999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 0.00403283 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 0.003403131 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="1"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="10"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="15"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="20"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="25"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="30"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 131 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 0.016978 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 131 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 0.013037918000000004 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 131 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 0.0035619579999999996 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 0.003124796 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="10"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="15"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="20"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="30"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 550 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 0.07237249899999997 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 550 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 0.06388638099999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="1"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="10"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="15"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="20"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="25"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="30"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 263 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 0.030069835000000017 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 263 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 0.02566837599999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 263 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="10"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="15"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="20"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="30"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 682 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 0.07643688199999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 682 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 0.06493912599999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 0.0037785389999999996 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 0.0028698349999999994 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 0.0037893700000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 0.0032244170000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="1"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="10"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="15"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="20"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="25"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="30"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 135 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 0.019094456000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 135 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 0.016790125 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 135 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 0.003536542999999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 0.003073919 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="1"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="5"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="10"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="15"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="20"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="25"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="30"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 161 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate"} 0.008328828000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate"} 161 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="1"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="5"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="10"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="15"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="20"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="25"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="30"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 64 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 0.004868207000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 64 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="1"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="5"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="10"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="15"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="20"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="25"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="30"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 31 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 0.0013847909999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="1"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="5"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="10"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="15"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="20"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="25"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="30"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 127 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 0.005509418000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 127 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="1"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="5"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="10"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="15"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="20"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="25"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="30"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 31 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 0.001409915 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 31 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="1"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="5"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="10"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="15"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="20"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="25"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="30"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 542 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 0.028097191999999972 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 542 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.005"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.01"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.025"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.05"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.1"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.25"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.5"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="1"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="2.5"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="5"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="10"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="15"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="20"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="25"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="30"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 252 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 0.011021299000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 252 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.005"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.01"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.025"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.05"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.1"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.25"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.5"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="1"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="2.5"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="5"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="10"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="15"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="20"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="25"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="30"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 673 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 0.028263518000000005 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 0.0012023709999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 0.0013755420000000004 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="1"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="5"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="10"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="15"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="20"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="25"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="30"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 130 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 0.005607530000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 130 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 0.0015731669999999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 169 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate"} 0.022356126999999993 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate"} 169 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 67 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 0.008081038000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 0.003574376 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 134 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 0.017721628 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 134 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 0.0029476290000000007 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 547 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 0.06987416899999999 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 547 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="1"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="5"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="10"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="15"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="20"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="25"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="30"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 258 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 0.02764483599999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 258 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="1"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="5"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="10"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="15"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="20"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="25"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="30"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 682 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 0.07475502799999993 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 0.0035989560000000004 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 36 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 0.004000833 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 36 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 141 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 0.018671451999999995 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 141 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.005"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.01"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.025"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.05"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="0.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="1"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="2.5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="5"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="10"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="15"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="20"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="25"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="30"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate",le="+Inf"} 35 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 0.0031868770000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 166 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate"} 0.010848456000000003 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 67 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 0.004419046000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 67 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 0.001658629 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 132 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 0.007148373999999998 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 132 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 32 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 0.002610374 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 544 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 0.032568039999999986 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 544 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="1"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="5"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="10"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="15"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="20"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="25"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="30"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 255 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 0.012303921 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 255 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="1"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="5"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="10"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="15"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="20"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="25"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="30"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 673 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 0.037787114000000024 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 673 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 0.0015652930000000002 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 34 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 0.002028042 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 133 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 0.006957007000000001 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 133 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.005"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.01"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.025"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.05"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="0.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="1"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="2.5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="5"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="10"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="15"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="20"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="25"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="30"} 33 +kyverno_policy_execution_duration_seconds_bucket{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate",le="+Inf"} 33 +kyverno_policy_execution_duration_seconds_sum{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 0.001673417 +kyverno_policy_execution_duration_seconds_count{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 33 +# HELP kyverno_policy_results_total can be used to track the results associated with the policies applied in the user's cluster, at the level from rule to policy to admission requests +# TYPE kyverno_policy_results_total counter +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-adding-capabilities",rule_result="pass",rule_type="validate"} 169 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="fail",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 134 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 554 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="fail",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 239 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 694 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="adding-capabilities",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 36 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 137 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-capabilities",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-adding-capabilities",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-namespaces",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="fail",rule_type="validate"} 66 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 134 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 554 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="fail",rule_type="validate"} 198 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 64 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 680 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-namespaces",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 133 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-namespaces",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-namespaces",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-path",rule_result="pass",rule_type="validate"} 170 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="fail",rule_type="validate"} 67 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 138 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 553 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="fail",rule_type="validate"} 198 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 685 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-path",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 36 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 141 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-path",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-path",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-ports-none",rule_result="pass",rule_type="validate"} 165 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 131 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 258 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 675 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-ports-none",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 133 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-ports",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-ports-none",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-host-process-containers",rule_result="pass",rule_type="validate"} 164 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 134 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 554 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 265 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 687 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="host-process-containers",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 133 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-host-process",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-host-process-containers",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-privileged-containers",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="fail",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 132 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="fail",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 231 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="privileged-containers",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 135 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-privileged-containers",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-privileged-containers",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-proc-mount",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 67 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 135 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 263 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-proc-mount",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 36 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 139 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-proc-mount",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-proc-mount",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-type",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-selinux-user-role",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 65 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 131 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 131 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 550 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 263 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 263 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-type",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="selinux-user-role",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 135 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 135 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-type",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="disallow-selinux",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-selinux-user-role",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-app-armor",rule_result="pass",rule_type="validate"} 161 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 64 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 31 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 127 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 31 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 542 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 252 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 673 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="app-armor",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 130 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-apparmor-profiles",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-app-armor",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-seccomp",rule_result="pass",rule_type="validate"} 169 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 67 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 134 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 547 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 258 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 682 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-seccomp",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 36 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 141 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-seccomp",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-seccomp",rule_result="pass",rule_type="validate"} 35 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="CronJob",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-cronjob-check-sysctls",rule_result="pass",rule_type="validate"} 166 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="DaemonSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 67 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 132 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Deployment",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 32 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Job",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 544 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 255 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 673 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="Pod",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="check-sysctls",rule_result="pass",rule_type="validate"} 33 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kube-system",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 34 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="kyverno",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 133 +kyverno_policy_results_total{otel_scope_name="kyverno",otel_scope_version="",policy_background_mode="true",policy_name="restrict-sysctls",policy_namespace="-",policy_type="cluster",policy_validation_mode="audit",resource_kind="ReplicaSet",resource_namespace="local-path-storage",resource_request_operation="create",rule_execution_cause="background_scan",rule_name="autogen-check-sysctls",rule_result="pass",rule_type="validate"} 33 +# HELP otel_scope_info Instrumentation Scope metadata +# TYPE otel_scope_info gauge +otel_scope_info{otel_scope_name="kyverno",otel_scope_version=""} 1 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 163.5 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 9 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 1.22167296e+08 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.71920819932e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 5.65168128e+09 +# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes. +# TYPE process_virtual_memory_max_bytes gauge +process_virtual_memory_max_bytes 1.8446744073709552e+19 +# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served. +# TYPE promhttp_metric_handler_requests_in_flight gauge +promhttp_metric_handler_requests_in_flight 1 +# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code. +# TYPE promhttp_metric_handler_requests_total counter +promhttp_metric_handler_requests_total{code="200"} 1 +promhttp_metric_handler_requests_total{code="500"} 0 +promhttp_metric_handler_requests_total{code="503"} 0 \ No newline at end of file diff --git a/kyverno/tests/kind/kyverno-policies_install.yaml b/kyverno/tests/kind/kyverno-policies_install.yaml new file mode 100644 index 0000000000000..4f0baeb4b5629 --- /dev/null +++ b/kyverno/tests/kind/kyverno-policies_install.yaml @@ -0,0 +1,619 @@ +--- +# Source: kyverno-policies/templates/baseline/disallow-capabilities.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: disallow-capabilities + annotations: + policies.kyverno.io/title: Disallow Capabilities + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + kyverno.io/kyverno-version: 1.6.0 + policies.kyverno.io/minversion: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/subject: Pod + policies.kyverno.io/description: >- + Adding capabilities beyond those listed in the policy must be disallowed. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: adding-capabilities + match: + any: + - resources: + kinds: + - Pod + preconditions: + all: + - key: "{{ request.operation || 'BACKGROUND' }}" + operator: NotEquals + value: DELETE + validate: + message: >- + Any capabilities added beyond the allowed list (AUDIT_WRITE, CHOWN, DAC_OVERRIDE, FOWNER, + FSETID, KILL, MKNOD, NET_BIND_SERVICE, SETFCAP, SETGID, SETPCAP, SETUID, SYS_CHROOT) + are disallowed. + deny: + conditions: + all: + - key: "{{ request.object.spec.[ephemeralContainers, initContainers, containers][].securityContext.capabilities.add[] }}" + operator: AnyNotIn + value: + - AUDIT_WRITE + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - MKNOD + - NET_BIND_SERVICE + - SETFCAP + - SETGID + - SETPCAP + - SETUID + - SYS_CHROOT +--- +# Source: kyverno-policies/templates/baseline/disallow-host-namespaces.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: disallow-host-namespaces + annotations: + policies.kyverno.io/title: Disallow Host Namespaces + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/subject: Pod + policies.kyverno.io/description: >- + Host namespaces (Process ID namespace, Inter-Process Communication namespace, and + network namespace) allow access to shared information and can be used to elevate + privileges. Pods should not be allowed access to host namespaces. This policy ensures + fields which make use of these host namespaces are unset or set to `false`. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: host-namespaces + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Sharing the host namespaces is disallowed. The fields spec.hostNetwork, + spec.hostIPC, and spec.hostPID must be unset or set to `false`. + pattern: + spec: + =(hostPID): "false" + =(hostIPC): "false" + =(hostNetwork): "false" +--- +# Source: kyverno-policies/templates/baseline/disallow-host-path.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: disallow-host-path + annotations: + policies.kyverno.io/title: Disallow hostPath + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod,Volume + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + HostPath volumes let Pods use host directories and volumes in containers. + Using host resources can be used to access shared data or escalate privileges + and should not be allowed. This policy ensures no hostPath volumes are in use. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: host-path + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + HostPath volumes are forbidden. The field spec.volumes[*].hostPath must be unset. + pattern: + spec: + =(volumes): + - X(hostPath): "null" +--- +# Source: kyverno-policies/templates/baseline/disallow-host-ports.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: disallow-host-ports + annotations: + policies.kyverno.io/title: Disallow hostPorts + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + Access to host ports allows potential snooping of network traffic and should not be + allowed, or at minimum restricted to a known list. This policy ensures the `hostPort` + field is unset or set to `0`. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: host-ports-none + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Use of host ports is disallowed. The fields spec.containers[*].ports[*].hostPort + , spec.initContainers[*].ports[*].hostPort, and spec.ephemeralContainers[*].ports[*].hostPort + must either be unset or set to `0`. + pattern: + spec: + =(ephemeralContainers): + - =(ports): + - =(hostPort): 0 + =(initContainers): + - =(ports): + - =(hostPort): 0 + containers: + - =(ports): + - =(hostPort): 0 +--- +# Source: kyverno-policies/templates/baseline/disallow-host-process.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: disallow-host-process + annotations: + policies.kyverno.io/title: Disallow hostProcess + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + Windows pods offer the ability to run HostProcess containers which enables privileged + access to the Windows node. Privileged access to the host is disallowed in the baseline + policy. HostProcess pods are an alpha feature as of Kubernetes v1.22. This policy ensures + the `hostProcess` field, if present, is set to `false`. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: host-process-containers + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + HostProcess containers are disallowed. The fields spec.securityContext.windowsOptions.hostProcess, + spec.containers[*].securityContext.windowsOptions.hostProcess, spec.initContainers[*].securityContext.windowsOptions.hostProcess, + and spec.ephemeralContainers[*].securityContext.windowsOptions.hostProcess must either be undefined + or set to `false`. + pattern: + spec: + =(ephemeralContainers): + - =(securityContext): + =(windowsOptions): + =(hostProcess): "false" + =(initContainers): + - =(securityContext): + =(windowsOptions): + =(hostProcess): "false" + containers: + - =(securityContext): + =(windowsOptions): + =(hostProcess): "false" +--- +# Source: kyverno-policies/templates/baseline/disallow-privileged-containers.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: disallow-privileged-containers + annotations: + policies.kyverno.io/title: Disallow Privileged Containers + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + Privileged mode disables most security mechanisms and must not be allowed. This policy + ensures Pods do not call for privileged mode. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: privileged-containers + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Privileged mode is disallowed. The fields spec.containers[*].securityContext.privileged + and spec.initContainers[*].securityContext.privileged must be unset or set to `false`. + pattern: + spec: + =(ephemeralContainers): + - =(securityContext): + =(privileged): "false" + =(initContainers): + - =(securityContext): + =(privileged): "false" + containers: + - =(securityContext): + =(privileged): "false" +--- +# Source: kyverno-policies/templates/baseline/disallow-proc-mount.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: disallow-proc-mount + annotations: + policies.kyverno.io/title: Disallow procMount + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + The default /proc masks are set up to reduce attack surface and should be required. This policy + ensures nothing but the default procMount can be specified. Note that in order for users + to deviate from the `Default` procMount requires setting a feature gate at the API + server. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: check-proc-mount + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Changing the proc mount from the default is not allowed. The fields + spec.containers[*].securityContext.procMount, spec.initContainers[*].securityContext.procMount, + and spec.ephemeralContainers[*].securityContext.procMount must be unset or + set to `Default`. + pattern: + spec: + =(ephemeralContainers): + - =(securityContext): + =(procMount): "Default" + =(initContainers): + - =(securityContext): + =(procMount): "Default" + containers: + - =(securityContext): + =(procMount): "Default" +--- +# Source: kyverno-policies/templates/baseline/disallow-selinux.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: disallow-selinux + annotations: + policies.kyverno.io/title: Disallow SELinux + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + SELinux options can be used to escalate privileges and should not be allowed. This policy + ensures that the `seLinuxOptions` field is undefined. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: selinux-type + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Setting the SELinux type is restricted. The fields + spec.securityContext.seLinuxOptions.type, spec.containers[*].securityContext.seLinuxOptions.type, + , spec.initContainers[*].securityContext.seLinuxOptions, and spec.ephemeralContainers[*].securityContext.seLinuxOptions.type + must either be unset or set to one of the allowed values (container_t, container_init_t, or container_kvm_t). + pattern: + spec: + =(securityContext): + =(seLinuxOptions): + =(type): "container_t | container_init_t | container_kvm_t" + =(ephemeralContainers): + - =(securityContext): + =(seLinuxOptions): + =(type): "container_t | container_init_t | container_kvm_t" + =(initContainers): + - =(securityContext): + =(seLinuxOptions): + =(type): "container_t | container_init_t | container_kvm_t" + containers: + - =(securityContext): + =(seLinuxOptions): + =(type): "container_t | container_init_t | container_kvm_t" + - name: selinux-user-role + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Setting the SELinux user or role is forbidden. The fields + spec.securityContext.seLinuxOptions.user, spec.securityContext.seLinuxOptions.role, + spec.containers[*].securityContext.seLinuxOptions.user, spec.containers[*].securityContext.seLinuxOptions.role, + spec.initContainers[*].securityContext.seLinuxOptions.user, spec.initContainers[*].securityContext.seLinuxOptions.role, + spec.ephemeralContainers[*].securityContext.seLinuxOptions.user, and spec.ephemeralContainers[*].securityContext.seLinuxOptions.role + must be unset. + pattern: + spec: + =(securityContext): + =(seLinuxOptions): + X(user): "null" + X(role): "null" + =(ephemeralContainers): + - =(securityContext): + =(seLinuxOptions): + X(user): "null" + X(role): "null" + =(initContainers): + - =(securityContext): + =(seLinuxOptions): + X(user): "null" + X(role): "null" + containers: + - =(securityContext): + =(seLinuxOptions): + X(user): "null" + X(role): "null" +--- +# Source: kyverno-policies/templates/baseline/restrict-apparmor-profiles.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: restrict-apparmor-profiles + annotations: + policies.kyverno.io/title: Restrict AppArmor + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod, Annotation + policies.kyverno.io/minversion: 1.3.0 + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + On supported hosts, the 'runtime/default' AppArmor profile is applied by default. + The default policy should prevent overriding or disabling the policy, or restrict + overrides to an allowed set of profiles. This policy ensures Pods do not + specify any other AppArmor profiles than `runtime/default` or `localhost/*`. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: app-armor + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Specifying other AppArmor profiles is disallowed. The annotation + `container.apparmor.security.beta.kubernetes.io` if defined + must not be set to anything other than `runtime/default` or `localhost/*`. + pattern: + =(metadata): + =(annotations): + =(container.apparmor.security.beta.kubernetes.io/*): "runtime/default | localhost/*" +--- +# Source: kyverno-policies/templates/baseline/restrict-seccomp.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: restrict-seccomp + annotations: + policies.kyverno.io/title: Restrict Seccomp + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + The seccomp profile must not be explicitly set to Unconfined. This policy, + requiring Kubernetes v1.19 or later, ensures that seccomp is unset or + set to `RuntimeDefault` or `Localhost`. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + background: true + validationFailureAction: Audit + failurePolicy: Fail + rules: + - name: check-seccomp + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Use of custom Seccomp profiles is disallowed. The fields + spec.securityContext.seccompProfile.type, + spec.containers[*].securityContext.seccompProfile.type, + spec.initContainers[*].securityContext.seccompProfile.type, and + spec.ephemeralContainers[*].securityContext.seccompProfile.type + must be unset or set to `RuntimeDefault` or `Localhost`. + pattern: + spec: + =(securityContext): + =(seccompProfile): + =(type): "RuntimeDefault | Localhost" + =(ephemeralContainers): + - =(securityContext): + =(seccompProfile): + =(type): "RuntimeDefault | Localhost" + =(initContainers): + - =(securityContext): + =(seccompProfile): + =(type): "RuntimeDefault | Localhost" + containers: + - =(securityContext): + =(seccompProfile): + =(type): "RuntimeDefault | Localhost" +--- +# Source: kyverno-policies/templates/baseline/restrict-sysctls.yaml +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: restrict-sysctls + annotations: + policies.kyverno.io/title: Restrict sysctls + policies.kyverno.io/category: Pod Security Standards (Baseline) + policies.kyverno.io/severity: medium + policies.kyverno.io/subject: Pod + kyverno.io/kyverno-version: 1.6.0 + kyverno.io/kubernetes-version: "1.22-1.23" + policies.kyverno.io/description: >- + Sysctls can disable security mechanisms or affect all containers on a + host, and should be disallowed except for an allowed "safe" subset. A + sysctl is considered safe if it is namespaced in the container or the + Pod, and it is isolated from other Pods or processes on the same Node. + This policy ensures that only those "safe" subsets can be specified in + a Pod. + labels: + app.kubernetes.io/component: kyverno + app.kubernetes.io/instance: kyverno-policies + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: kyverno-policies + app.kubernetes.io/part-of: kyverno-policies + app.kubernetes.io/version: "3.2.3" + helm.sh/chart: kyverno-policies-3.2.3 +spec: + validationFailureAction: Audit + background: true + failurePolicy: Fail + rules: + - name: check-sysctls + match: + any: + - resources: + kinds: + - Pod + validate: + message: >- + Setting additional sysctls above the allowed type is disallowed. + The field spec.securityContext.sysctls must be unset or not use any other names + than kernel.shm_rmid_forced, net.ipv4.ip_local_port_range, + net.ipv4.ip_unprivileged_port_start, net.ipv4.tcp_syncookies and + net.ipv4.ping_group_range. + pattern: + spec: + =(securityContext): + =(sysctls): + - =(name): "kernel.shm_rmid_forced | net.ipv4.ip_local_port_range | net.ipv4.ip_unprivileged_port_start | net.ipv4.tcp_syncookies | net.ipv4.ping_group_range" + diff --git a/kyverno/tests/kind/kyverno_install.yaml b/kyverno/tests/kind/kyverno_install.yaml new file mode 100644 index 0000000000000..cc43312bf27ea --- /dev/null +++ b/kyverno/tests/kind/kyverno_install.yaml @@ -0,0 +1,49808 @@ +--- +# Source: kyverno/templates/admission-controller/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: kyverno-admission-controller + namespace: kyverno + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +--- +# Source: kyverno/templates/background-controller/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: kyverno-background-controller + namespace: kyverno + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +--- +# Source: kyverno/templates/cleanup-controller/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: kyverno-cleanup-controller + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +--- +# Source: kyverno/templates/cleanup/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: kyverno-cleanup-jobs + namespace: kyverno + labels: + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +--- +# Source: kyverno/templates/reports-controller/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: kyverno-reports-controller + namespace: kyverno + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +--- +# Source: kyverno/templates/config/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: kyverno + namespace: kyverno + labels: + app.kubernetes.io/component: config + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +data: + enableDefaultRegistryMutation: "true" + defaultRegistry: "docker.io" + generateSuccessEvents: "false" + excludeGroups: "system:nodes" + resourceFilters: >- + [*/*,kyverno,*] + [Event,*,*] + [*/*,kube-system,*] + [*/*,kube-public,*] + [*/*,kube-node-lease,*] + [Node,*,*] + [Node/*,*,*] + [APIService,*,*] + [APIService/*,*,*] + [TokenReview,*,*] + [SubjectAccessReview,*,*] + [SelfSubjectAccessReview,*,*] + [Binding,*,*] + [Pod/binding,*,*] + [ReplicaSet,*,*] + [ReplicaSet/*,*,*] + [AdmissionReport,*,*] + [AdmissionReport/*,*,*] + [ClusterAdmissionReport,*,*] + [ClusterAdmissionReport/*,*,*] + [BackgroundScanReport,*,*] + [BackgroundScanReport/*,*,*] + [ClusterBackgroundScanReport,*,*] + [ClusterBackgroundScanReport/*,*,*] + [ClusterRole,*,kyverno:admission-controller] + [ClusterRole,*,kyverno:admission-controller:core] + [ClusterRole,*,kyverno:admission-controller:additional] + [ClusterRole,*,kyverno:background-controller] + [ClusterRole,*,kyverno:background-controller:core] + [ClusterRole,*,kyverno:background-controller:additional] + [ClusterRole,*,kyverno:cleanup-controller] + [ClusterRole,*,kyverno:cleanup-controller:core] + [ClusterRole,*,kyverno:cleanup-controller:additional] + [ClusterRole,*,kyverno:reports-controller] + [ClusterRole,*,kyverno:reports-controller:core] + [ClusterRole,*,kyverno:reports-controller:additional] + [ClusterRoleBinding,*,kyverno:admission-controller] + [ClusterRoleBinding,*,kyverno:background-controller] + [ClusterRoleBinding,*,kyverno:cleanup-controller] + [ClusterRoleBinding,*,kyverno:reports-controller] + [ServiceAccount,kyverno,kyverno-admission-controller] + [ServiceAccount/*,kyverno,kyverno-admission-controller] + [ServiceAccount,kyverno,kyverno-background-controller] + [ServiceAccount/*,kyverno,kyverno-background-controller] + [ServiceAccount,kyverno,kyverno-cleanup-controller] + [ServiceAccount/*,kyverno,kyverno-cleanup-controller] + [ServiceAccount,kyverno,kyverno-reports-controller] + [ServiceAccount/*,kyverno,kyverno-reports-controller] + [Role,kyverno,kyverno:admission-controller] + [Role,kyverno,kyverno:background-controller] + [Role,kyverno,kyverno:cleanup-controller] + [Role,kyverno,kyverno:reports-controller] + [RoleBinding,kyverno,kyverno:admission-controller] + [RoleBinding,kyverno,kyverno:background-controller] + [RoleBinding,kyverno,kyverno:cleanup-controller] + [RoleBinding,kyverno,kyverno:reports-controller] + [ConfigMap,kyverno,kyverno] + [ConfigMap,kyverno,kyverno-metrics] + [Deployment,kyverno,kyverno-admission-controller] + [Deployment/*,kyverno,kyverno-admission-controller] + [Deployment,kyverno,kyverno-background-controller] + [Deployment/*,kyverno,kyverno-background-controller] + [Deployment,kyverno,kyverno-cleanup-controller] + [Deployment/*,kyverno,kyverno-cleanup-controller] + [Deployment,kyverno,kyverno-reports-controller] + [Deployment/*,kyverno,kyverno-reports-controller] + [Pod,kyverno,kyverno-admission-controller-*] + [Pod/*,kyverno,kyverno-admission-controller-*] + [Pod,kyverno,kyverno-background-controller-*] + [Pod/*,kyverno,kyverno-background-controller-*] + [Pod,kyverno,kyverno-cleanup-controller-*] + [Pod/*,kyverno,kyverno-cleanup-controller-*] + [Pod,kyverno,kyverno-reports-controller-*] + [Pod/*,kyverno,kyverno-reports-controller-*] + [Job,kyverno,kyverno-hook-pre-delete] + [Job/*,kyverno,kyverno-hook-pre-delete] + [NetworkPolicy,kyverno,kyverno-admission-controller] + [NetworkPolicy/*,kyverno,kyverno-admission-controller] + [NetworkPolicy,kyverno,kyverno-background-controller] + [NetworkPolicy/*,kyverno,kyverno-background-controller] + [NetworkPolicy,kyverno,kyverno-cleanup-controller] + [NetworkPolicy/*,kyverno,kyverno-cleanup-controller] + [NetworkPolicy,kyverno,kyverno-reports-controller] + [NetworkPolicy/*,kyverno,kyverno-reports-controller] + [PodDisruptionBudget,kyverno,kyverno-admission-controller] + [PodDisruptionBudget/*,kyverno,kyverno-admission-controller] + [PodDisruptionBudget,kyverno,kyverno-background-controller] + [PodDisruptionBudget/*,kyverno,kyverno-background-controller] + [PodDisruptionBudget,kyverno,kyverno-cleanup-controller] + [PodDisruptionBudget/*,kyverno,kyverno-cleanup-controller] + [PodDisruptionBudget,kyverno,kyverno-reports-controller] + [PodDisruptionBudget/*,kyverno,kyverno-reports-controller] + [Service,kyverno,kyverno-svc] + [Service/*,kyverno,kyverno-svc] + [Service,kyverno,kyverno-svc-metrics] + [Service/*,kyverno,kyverno-svc-metrics] + [Service,kyverno,kyverno-background-controller-metrics] + [Service/*,kyverno,kyverno-background-controller-metrics] + [Service,kyverno,kyverno-cleanup-controller] + [Service/*,kyverno,kyverno-cleanup-controller] + [Service,kyverno,kyverno-cleanup-controller-metrics] + [Service/*,kyverno,kyverno-cleanup-controller-metrics] + [Service,kyverno,kyverno-reports-controller-metrics] + [Service/*,kyverno,kyverno-reports-controller-metrics] + [ServiceMonitor,kyverno,kyverno-admission-controller] + [ServiceMonitor,kyverno,kyverno-background-controller] + [ServiceMonitor,kyverno,kyverno-cleanup-controller] + [ServiceMonitor,kyverno,kyverno-reports-controller] + [Secret,kyverno,kyverno-svc.kyverno.svc.*] + [Secret,kyverno,kyverno-cleanup-controller.kyverno.svc.*] + webhooks: "[{\"namespaceSelector\":{\"matchExpressions\":[{\"key\":\"kubernetes.io/metadata.name\",\"operator\":\"NotIn\",\"values\":[\"kube-system\"]},{\"key\":\"kubernetes.io/metadata.name\",\"operator\":\"NotIn\",\"values\":[\"kyverno\"]}],\"matchLabels\":null}}]" + webhookAnnotations: "{\"admissions.enforcer/disabled\":\"true\"}" +--- +# Source: kyverno/templates/config/metricsconfigmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: kyverno-metrics + namespace: kyverno + labels: + app.kubernetes.io/component: config + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +data: + namespaces: "{\"exclude\":[],\"include\":[]}" + bucketBoundaries: "0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 15, 20, 25, 30" +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_admissionreports.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: admissionreports.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: AdmissionReport + listKind: AdmissionReportList + plural: admissionreports + shortNames: + - admr + singular: admissionreport + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.summary.pass + name: PASS + type: integer + - jsonPath: .spec.summary.fail + name: FAIL + type: integer + - jsonPath: .spec.summary.warn + name: WARN + type: integer + - jsonPath: .spec.summary.error + name: ERROR + type: integer + - jsonPath: .spec.summary.skip + name: SKIP + type: integer + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.gvr'] + name: GVR + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.name'] + name: REF + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/report\.aggregate'] + name: AGGREGATE + priority: 1 + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: AdmissionReport is the Schema for the AdmissionReports API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + owner: + description: Owner is a reference to the report owner (e.g. a Deployment, + Namespace, or Node) + properties: + apiVersion: + description: API version of the referent. + type: string + blockOwnerDeletion: + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. + type: boolean + controller: + description: If true, this reference points to the managing controller. + type: boolean + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + required: + - owner + type: object + required: + - spec + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.summary.pass + name: PASS + type: integer + - jsonPath: .spec.summary.fail + name: FAIL + type: integer + - jsonPath: .spec.summary.warn + name: WARN + type: integer + - jsonPath: .spec.summary.error + name: ERROR + type: integer + - jsonPath: .spec.summary.skip + name: SKIP + type: integer + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.gvr'] + name: GVR + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.name'] + name: REF + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/report\.aggregate'] + name: AGGREGATE + priority: 1 + type: string + name: v2 + schema: + openAPIV3Schema: + description: AdmissionReport is the Schema for the AdmissionReports API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + owner: + description: Owner is a reference to the report owner (e.g. a Deployment, + Namespace, or Node) + properties: + apiVersion: + description: API version of the referent. + type: string + blockOwnerDeletion: + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. + type: boolean + controller: + description: If true, this reference points to the managing controller. + type: boolean + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + required: + - owner + type: object + required: + - spec + type: object + served: true + storage: false + subresources: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_backgroundscanreports.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: backgroundscanreports.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: BackgroundScanReport + listKind: BackgroundScanReportList + plural: backgroundscanreports + shortNames: + - bgscanr + singular: backgroundscanreport + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.ownerReferences[0].apiVersion + name: ApiVersion + type: string + - jsonPath: .metadata.ownerReferences[0].kind + name: Kind + type: string + - jsonPath: .metadata.ownerReferences[0].name + name: Subject + type: string + - jsonPath: .spec.summary.pass + name: Pass + type: integer + - jsonPath: .spec.summary.fail + name: Fail + type: integer + - jsonPath: .spec.summary.warn + name: Warn + type: integer + - jsonPath: .spec.summary.error + name: Error + type: integer + - jsonPath: .spec.summary.skip + name: Skip + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.hash'] + name: Hash + priority: 1 + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: BackgroundScanReport is the Schema for the BackgroundScanReports + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + type: object + required: + - spec + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: + - jsonPath: .metadata.ownerReferences[0].apiVersion + name: ApiVersion + type: string + - jsonPath: .metadata.ownerReferences[0].kind + name: Kind + type: string + - jsonPath: .metadata.ownerReferences[0].name + name: Subject + type: string + - jsonPath: .spec.summary.pass + name: Pass + type: integer + - jsonPath: .spec.summary.fail + name: Fail + type: integer + - jsonPath: .spec.summary.warn + name: Warn + type: integer + - jsonPath: .spec.summary.error + name: Error + type: integer + - jsonPath: .spec.summary.skip + name: Skip + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.hash'] + name: Hash + priority: 1 + type: string + name: v2 + schema: + openAPIV3Schema: + description: BackgroundScanReport is the Schema for the BackgroundScanReports + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + type: object + required: + - spec + type: object + served: true + storage: false + subresources: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_cleanuppolicies.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: cleanuppolicies.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: CleanupPolicy + listKind: CleanupPolicyList + plural: cleanuppolicies + shortNames: + - cleanpol + singular: cleanuppolicy + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.schedule + name: Schedule + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2 + schema: + openAPIV3Schema: + description: CleanupPolicy defines a rule for resource cleanup. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy behaviors. + properties: + conditions: + description: Conditions defines the conditions used to select the + resources which will be cleaned up. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + context: + description: Context defines variables and data sources that can be + used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST data + properties: + key: + description: Key is a unique identifier for the data + value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference to a + cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure access + to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when cleanuppolicy should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + match: + description: |- + MatchResources defines when cleanuppolicy should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + schedule: + description: The schedule in Cron format + type: string + required: + - schedule + type: object + status: + description: Status contains policy runtime data. + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastExecutionTime: + format: date-time + type: string + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.schedule + name: Schedule + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2alpha1 + schema: + openAPIV3Schema: + description: CleanupPolicy defines a rule for resource cleanup. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy behaviors. + properties: + conditions: + description: Conditions defines the conditions used to select the + resources which will be cleaned up. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + context: + description: Context defines variables and data sources that can be + used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST data + properties: + key: + description: Key is a unique identifier for the data + value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference to a + cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure access + to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when cleanuppolicy should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + match: + description: |- + MatchResources defines when cleanuppolicy should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + schedule: + description: The schedule in Cron format + type: string + required: + - schedule + type: object + status: + description: Status contains policy runtime data. + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastExecutionTime: + format: date-time + type: string + type: object + required: + - spec + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.schedule + name: Schedule + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2beta1 + schema: + openAPIV3Schema: + description: CleanupPolicy defines a rule for resource cleanup. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy behaviors. + properties: + conditions: + description: Conditions defines the conditions used to select the + resources which will be cleaned up. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + context: + description: Context defines variables and data sources that can be + used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST data + properties: + key: + description: Key is a unique identifier for the data + value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference to a + cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure access + to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when cleanuppolicy should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + match: + description: |- + MatchResources defines when cleanuppolicy should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + schedule: + description: The schedule in Cron format + type: string + required: + - schedule + type: object + status: + description: Status contains policy runtime data. + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastExecutionTime: + format: date-time + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_clusteradmissionreports.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: clusteradmissionreports.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: ClusterAdmissionReport + listKind: ClusterAdmissionReportList + plural: clusteradmissionreports + shortNames: + - cadmr + singular: clusteradmissionreport + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.summary.pass + name: PASS + type: integer + - jsonPath: .spec.summary.fail + name: FAIL + type: integer + - jsonPath: .spec.summary.warn + name: WARN + type: integer + - jsonPath: .spec.summary.error + name: ERROR + type: integer + - jsonPath: .spec.summary.skip + name: SKIP + type: integer + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.gvr'] + name: GVR + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.name'] + name: REF + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/report\.aggregate'] + name: AGGREGATE + priority: 1 + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: ClusterAdmissionReport is the Schema for the ClusterAdmissionReports + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + owner: + description: Owner is a reference to the report owner (e.g. a Deployment, + Namespace, or Node) + properties: + apiVersion: + description: API version of the referent. + type: string + blockOwnerDeletion: + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. + type: boolean + controller: + description: If true, this reference points to the managing controller. + type: boolean + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + required: + - owner + type: object + required: + - spec + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.summary.pass + name: PASS + type: integer + - jsonPath: .spec.summary.fail + name: FAIL + type: integer + - jsonPath: .spec.summary.warn + name: WARN + type: integer + - jsonPath: .spec.summary.error + name: ERROR + type: integer + - jsonPath: .spec.summary.skip + name: SKIP + type: integer + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.gvr'] + name: GVR + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.name'] + name: REF + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/report\.aggregate'] + name: AGGREGATE + priority: 1 + type: string + name: v2 + schema: + openAPIV3Schema: + description: ClusterAdmissionReport is the Schema for the ClusterAdmissionReports + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + owner: + description: Owner is a reference to the report owner (e.g. a Deployment, + Namespace, or Node) + properties: + apiVersion: + description: API version of the referent. + type: string + blockOwnerDeletion: + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. + type: boolean + controller: + description: If true, this reference points to the managing controller. + type: boolean + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + required: + - owner + type: object + required: + - spec + type: object + served: true + storage: false + subresources: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_clusterbackgroundscanreports.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: clusterbackgroundscanreports.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: ClusterBackgroundScanReport + listKind: ClusterBackgroundScanReportList + plural: clusterbackgroundscanreports + shortNames: + - cbgscanr + singular: clusterbackgroundscanreport + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.ownerReferences[0].apiVersion + name: ApiVersion + type: string + - jsonPath: .metadata.ownerReferences[0].kind + name: Kind + type: string + - jsonPath: .metadata.ownerReferences[0].name + name: Subject + type: string + - jsonPath: .spec.summary.pass + name: Pass + type: integer + - jsonPath: .spec.summary.fail + name: Fail + type: integer + - jsonPath: .spec.summary.warn + name: Warn + type: integer + - jsonPath: .spec.summary.error + name: Error + type: integer + - jsonPath: .spec.summary.skip + name: Skip + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.hash'] + name: Hash + priority: 1 + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: ClusterBackgroundScanReport is the Schema for the ClusterBackgroundScanReports + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + type: object + required: + - spec + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: + - jsonPath: .metadata.ownerReferences[0].apiVersion + name: ApiVersion + type: string + - jsonPath: .metadata.ownerReferences[0].kind + name: Kind + type: string + - jsonPath: .metadata.ownerReferences[0].name + name: Subject + type: string + - jsonPath: .spec.summary.pass + name: Pass + type: integer + - jsonPath: .spec.summary.fail + name: Fail + type: integer + - jsonPath: .spec.summary.warn + name: Warn + type: integer + - jsonPath: .spec.summary.error + name: Error + type: integer + - jsonPath: .spec.summary.skip + name: Skip + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.hash'] + name: Hash + priority: 1 + type: string + name: v2 + schema: + openAPIV3Schema: + description: ClusterBackgroundScanReport is the Schema for the ClusterBackgroundScanReports + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + type: object + required: + - spec + type: object + served: true + storage: false + subresources: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_clustercleanuppolicies.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: clustercleanuppolicies.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: ClusterCleanupPolicy + listKind: ClusterCleanupPolicyList + plural: clustercleanuppolicies + shortNames: + - ccleanpol + singular: clustercleanuppolicy + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .spec.schedule + name: Schedule + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2 + schema: + openAPIV3Schema: + description: ClusterCleanupPolicy defines rule for resource cleanup. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy behaviors. + properties: + conditions: + description: Conditions defines the conditions used to select the + resources which will be cleaned up. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + context: + description: Context defines variables and data sources that can be + used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST data + properties: + key: + description: Key is a unique identifier for the data + value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference to a + cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure access + to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when cleanuppolicy should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + match: + description: |- + MatchResources defines when cleanuppolicy should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + schedule: + description: The schedule in Cron format + type: string + required: + - schedule + type: object + status: + description: Status contains policy runtime data. + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastExecutionTime: + format: date-time + type: string + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.schedule + name: Schedule + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2alpha1 + schema: + openAPIV3Schema: + description: ClusterCleanupPolicy defines rule for resource cleanup. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy behaviors. + properties: + conditions: + description: Conditions defines the conditions used to select the + resources which will be cleaned up. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + context: + description: Context defines variables and data sources that can be + used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST data + properties: + key: + description: Key is a unique identifier for the data + value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference to a + cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure access + to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when cleanuppolicy should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + match: + description: |- + MatchResources defines when cleanuppolicy should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + schedule: + description: The schedule in Cron format + type: string + required: + - schedule + type: object + status: + description: Status contains policy runtime data. + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastExecutionTime: + format: date-time + type: string + type: object + required: + - spec + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.schedule + name: Schedule + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2beta1 + schema: + openAPIV3Schema: + description: ClusterCleanupPolicy defines rule for resource cleanup. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy behaviors. + properties: + conditions: + description: Conditions defines the conditions used to select the + resources which will be cleaned up. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + context: + description: Context defines variables and data sources that can be + used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST data + properties: + key: + description: Key is a unique identifier for the data + value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference to a + cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure access + to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when cleanuppolicy should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + match: + description: |- + MatchResources defines when cleanuppolicy should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + schedule: + description: The schedule in Cron format + type: string + required: + - schedule + type: object + status: + description: Status contains policy runtime data. + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastExecutionTime: + format: date-time + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_clusterpolicies.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: clusterpolicies.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: ClusterPolicy + listKind: ClusterPolicyList + plural: clusterpolicies + shortNames: + - cpol + singular: clusterpolicy + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .spec.admission + name: ADMISSION + type: boolean + - jsonPath: .spec.background + name: BACKGROUND + type: boolean + - jsonPath: .spec.validationFailureAction + name: VALIDATE ACTION + type: string + - jsonPath: .status.conditions[?(@.type == "Ready")].status + name: READY + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.failurePolicy + name: FAILURE POLICY + priority: 1 + type: string + - jsonPath: .status.rulecount.validate + name: VALIDATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.mutate + name: MUTATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.generate + name: GENERATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.verifyimages + name: VERIFY IMAGES + priority: 1 + type: integer + - jsonPath: .status.conditions[?(@.type == "Ready")].message + name: MESSAGE + type: string + name: v1 + schema: + openAPIV3Schema: + description: ClusterPolicy declares validation, mutation, and generation behaviors + for matching resources. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy behaviors. + properties: + admission: + default: true + description: |- + Admission controls if rules are applied during admission. + Optional. Default value is "true". + type: boolean + applyRules: + description: |- + ApplyRules controls how rules in a policy are applied. Rule are processed in + the order of declaration. When set to `One` processing stops after a rule has + been applied i.e. the rule matches and results in a pass, fail, or error. When + set to `All` all rules in the policy are processed. The default is `All`. + enum: + - All + - One + type: string + background: + default: true + description: |- + Background controls if rules are applied to existing resources during a background scan. + Optional. Default value is "true". The value must be set to "false" if the policy rule + uses variables that are only available in the admission review request (e.g. user name). + type: boolean + failurePolicy: + description: |- + FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled. + Rules within the same policy share the same failure behavior. + This field should not be accessed directly, instead `GetFailurePolicy()` should be used. + Allowed values are Ignore or Fail. Defaults to Fail. + enum: + - Ignore + - Fail + type: string + generateExisting: + description: |- + GenerateExisting controls whether to trigger generate rule in existing resources + If is set to "true" generate rule will be triggered and applied to existing matched resources. + Defaults to "false" if not specified. + type: boolean + generateExistingOnPolicyUpdate: + description: Deprecated, use generateExisting instead + type: boolean + mutateExistingOnPolicyUpdate: + description: |- + MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events. + Default value is "false". + type: boolean + rules: + description: |- + Rules is a list of Rule instances. A Policy contains multiple rules and + each rule can validate, mutate, or generate resources. + items: + description: |- + Rule defines a validation, mutation, or generation control for matching resources. + Each rules contains a match declaration to select resources, and an optional exclude + declaration to specify which resources to exclude. + properties: + celPreconditions: + description: |- + CELPreconditions are used to determine if a policy rule should be applied by evaluating a + set of CEL conditions. It can only be used with the validate.cel subrule + items: + description: MatchCondition represents a condition which must + by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + context: + description: Context defines variables and data sources that + can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST + data + properties: + key: + description: Key is a unique identifier for + the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET + or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference + to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when this policy rule should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + generate: + description: Generation is used to create new resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + clone: + description: |- + Clone specifies the source resource used to populate each generated resource. + At most one of Data or Clone can be specified. If neither are provided, the generated + resource will be created with default data only. + properties: + name: + description: Name specifies name of the resource. + type: string + namespace: + description: Namespace specifies source resource namespace. + type: string + type: object + cloneList: + description: CloneList specifies the list of source resource + used to populate each generated resource. + properties: + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + namespace: + description: Namespace specifies source resource namespace. + type: string + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels`. + wildcard characters are not supported. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + data: + description: |- + Data provides the resource declaration used to populate each generated resource. + At most one of Data or Clone must be specified. If neither are provided, the generated + resource will be created with default data only. + x-kubernetes-preserve-unknown-fields: true + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + orphanDownstreamOnPolicyDelete: + description: |- + OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated + them is deleted with synchronization enabled. This option is only applicable to generate rules of the data type. + See https://kyverno.io/docs/writing-policies/generate/#data-examples. + Defaults to "false" if not specified. + type: boolean + synchronize: + description: |- + Synchronize controls if generated resources should be kept in-sync with their source resource. + If Synchronize is set to "true" changes to generated resources will be overwritten with resource + data from Data or the resource specified in the Clone declaration. + Optional. Defaults to "false" if not specified. + type: boolean + uid: + description: UID specifies the resource uid. + type: string + type: object + imageExtractors: + additionalProperties: + items: + properties: + jmesPath: + description: |- + JMESPath is an optional JMESPath expression to apply to the image value. + This is useful when the extracted image begins with a prefix like 'docker://'. + The 'trim_prefix' function may be used to trim the prefix: trim_prefix(@, 'docker://'). + Note - Image digest mutation may not be used when applying a JMESPAth to an image. + type: string + key: + description: |- + Key is an optional name of the field within 'path' that will be used to uniquely identify an image. + Note - this field MUST be unique. + type: string + name: + description: |- + Name is the entry the image will be available under 'images.' in the context. + If this field is not defined, image entries will appear under 'images.custom'. + type: string + path: + description: |- + Path is the path to the object containing the image field in a custom resource. + It should be slash-separated. Each slash-separated key must be a valid YAML key or a wildcard '*'. + Wildcard keys are expanded in case of arrays or objects. + type: string + value: + description: |- + Value is an optional name of the field within 'path' that points to the image URI. + This is useful when a custom 'key' is also defined. + type: string + required: + - path + type: object + type: array + description: |- + ImageExtractors defines a mapping from kinds to ImageExtractorConfigs. + This config is only valid for verifyImages rules. + type: object + match: + description: |- + MatchResources defines when this policy rule should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + mutate: + description: Mutation is used to modify matching resources. + properties: + foreach: + description: ForEach applies mutation rules to a list of + sub-elements by creating a context for each entry in the + list and looping over it to apply the specified logic. + items: + description: ForEachMutation applies mutation rules to + a list of sub-elements by creating a context for each + entry in the list and looping over it to apply the specified + logic. + properties: + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + foreach: + description: Foreach declares a nested foreach iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + order: + description: |- + Order defines the iteration order on the list. + Can be Ascending to iterate from first to last element or Descending to iterate in from last to first element. + enum: + - Ascending + - Descending + type: string + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + targets: + description: Targets defines the target resources to be + mutated. + items: + description: TargetResourceSpec defines targets for mutating + existing resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + type: object + name: + description: Name is a label to identify the rule, It must be + unique within the policy. + maxLength: 63 + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + skipBackgroundRequests: + default: true + description: |- + SkipBackgroundRequests bypasses admission requests that are sent by the background controller. + The default value is set to "true", it must be set to "false" to apply + generate and mutateExisting rules to those requests. + type: boolean + validate: + description: Validation is used to validate matching resources. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + cel: + description: CEL allows validation checks using the Common + Expression Language (https://kubernetes.io/docs/reference/using-api/cel/). + properties: + auditAnnotations: + description: AuditAnnotations contains CEL expressions + which are used to produce audit annotations for the + audit event of the API request. + items: + description: AuditAnnotation describes how to produce + an audit annotation for an API request. + properties: + key: + description: |- + key specifies the audit annotation key. The audit annotation keys of + a ValidatingAdmissionPolicy must be unique. The key must be a qualified + name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + + + The key is combined with the resource name of the + ValidatingAdmissionPolicy to construct an audit annotation key: + "{ValidatingAdmissionPolicy name}/{key}". + + + If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy + and the same audit annotation key, the annotation key will be identical. + In this case, the first annotation written with the key will be included + in the audit event and all subsequent annotations with the same key + will be discarded. + + + Required. + type: string + valueExpression: + description: |- + valueExpression represents the expression which is evaluated by CEL to + produce an audit annotation value. The expression must evaluate to either + a string or null value. If the expression evaluates to a string, the + audit annotation is included with the string value. If the expression + evaluates to null or empty string the audit annotation will be omitted. + The valueExpression may be no longer than 5kb in length. + If the result of the valueExpression is more than 10kb in length, it + will be truncated to 10kb. + + + If multiple ValidatingAdmissionPolicyBinding resources match an + API request, then the valueExpression will be evaluated for + each binding. All unique values produced by the valueExpressions + will be joined together in a comma-separated list. + + + Required. + type: string + required: + - key + - valueExpression + type: object + type: array + expressions: + description: Expressions is a list of CELExpression + types. + items: + description: Validation specifies the CEL expression + which is used to apply the validation. + properties: + expression: + description: "Expression represents the expression + which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL + expressions have access to the contents of the + API request/response, organized into CEL variables + as well as some other useful variables:\n\n\n- + 'object' - The object from the incoming request. + The value is null for DELETE requests.\n- 'oldObject' + - The existing object. The value is null for + CREATE requests.\n- 'request' - Attributes of + the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- + 'params' - Parameter resource referred to by + the policy binding being evaluated. Only populated + if the policy has a ParamKind.\n- 'namespaceObject' + - The namespace object that the incoming object + belongs to. The value is null for cluster-scoped + resources.\n- 'variables' - Map of composited + variables, from its name to its lazily evaluated + value.\n For example, a variable named 'foo' + can be accessed as 'variables.foo'.\n- 'authorizer' + - A CEL Authorizer. May be used to perform authorization + checks for the principal (user or service account) + of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- + 'authorizer.requestResource' - A CEL ResourceCheck + constructed from the 'authorizer' and configured + with the\n request resource.\n\n\nThe `apiVersion`, + `kind`, `metadata.name` and `metadata.generateName` + are always accessible from the root of the\nobject. + No other metadata properties are accessible.\n\n\nOnly + property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` + are accessible.\nAccessible property names are + escaped according to the following rules when + accessed in the expression:\n- '__' escapes + to '__underscores__'\n- '.' escapes to '__dot__'\n- + '-' escapes to '__dash__'\n- '/' escapes to + '__slash__'\n- Property names that exactly match + a CEL RESERVED keyword escape to '__{keyword}__'. + The keywords are:\n\t \"true\", \"false\", + \"null\", \"in\", \"as\", \"break\", \"const\", + \"continue\", \"else\", \"for\", \"function\", + \"if\",\n\t \"import\", \"let\", \"loop\", + \"package\", \"namespace\", \"return\".\nExamples:\n + \ - Expression accessing a property named \"namespace\": + {\"Expression\": \"object.__namespace__ > 0\"}\n + \ - Expression accessing a property named \"x-prop\": + {\"Expression\": \"object.x__dash__prop > 0\"}\n + \ - Expression accessing a property named \"redact__d\": + {\"Expression\": \"object.redact__underscores__d + > 0\"}\n\n\nEquality on arrays with list type + of 'set' or 'map' ignores element order, i.e. + [1, 2] == [2, 1].\nConcatenation on arrays with + x-kubernetes-list-type use the semantics of + the list type:\n - 'set': `X + Y` performs + a union where the array positions of all elements + in `X` are preserved and\n non-intersecting + elements in `Y` are appended, retaining their + partial order.\n - 'map': `X + Y` performs + a merge where the array positions of all keys + in `X` are preserved but the values\n are + overwritten by values in `Y` when the key sets + of `X` and `Y` intersect. Elements in `Y` with\n + \ non-intersecting keys are appended, retaining + their partial order.\nRequired." + type: string + message: + description: |- + Message represents the message displayed when validation fails. The message is required if the Expression contains + line breaks. The message must not contain line breaks. + If unset, the message is "failed rule: {Rule}". + e.g. "must be a URL with the host matching spec.host" + If the Expression contains line breaks. Message is required. + The message must not contain line breaks. + If unset, the message is "failed Expression: {Expression}". + type: string + messageExpression: + description: |- + messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. + Since messageExpression is used as a failure message, it must evaluate to a string. + If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. + If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced + as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string + that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and + the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. + messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. + Example: + "object.x must be less than max ("+string(params.max)+")" + type: string + reason: + description: |- + Reason represents a machine-readable description of why this validation failed. + If this is the first validation in the list to fail, this reason, as well as the + corresponding HTTP response code, are used in the + HTTP response to the client. + The currently supported reasons are: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". + If not set, StatusReasonInvalid is used in the response to the client. + type: string + required: + - expression + type: object + type: array + paramKind: + description: ParamKind is a tuple of Group Kind and + Version. + properties: + apiVersion: + description: |- + APIVersion is the API group version the resources belong to. + In format of "group/version". + Required. + type: string + kind: + description: |- + Kind is the API kind the resources belong to. + Required. + type: string + type: object + x-kubernetes-map-type: atomic + paramRef: + description: ParamRef references a parameter resource. + properties: + name: + description: |- + `name` is the name of the resource being referenced. + + + `name` and `selector` are mutually exclusive properties. If one is set, + the other must be unset. + type: string + namespace: + description: |- + namespace is the namespace of the referenced resource. Allows limiting + the search for params to a specific namespace. Applies to both `name` and + `selector` fields. + + + A per-namespace parameter may be used by specifying a namespace-scoped + `paramKind` in the policy and leaving this field empty. + + + - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this + field results in a configuration error. + + + - If `paramKind` is namespace-scoped, the namespace of the object being + evaluated for admission will be used when this field is left unset. Take + care that if this is left empty the binding must not match any cluster-scoped + resources, which will result in an error. + type: string + parameterNotFoundAction: + description: |- + `parameterNotFoundAction` controls the behavior of the binding when the resource + exists, and name or selector is valid, but there are no parameters + matched by the binding. If the value is set to `Allow`, then no + matched parameters will be treated as successful validation by the binding. + If set to `Deny`, then no matched parameters will be subject to the + `failurePolicy` of the policy. + + + Allowed values are `Allow` or `Deny` + Default to `Deny` + type: string + selector: + description: |- + selector can be used to match multiple param objects based on their labels. + Supply selector: {} to match all resources of the ParamKind. + + + If multiple params are found, they are all evaluated with the policy expressions + and the results are ANDed together. + + + One of `name` or `selector` must be set, but `name` and `selector` are + mutually exclusive properties. If one is set, the other must be unset. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + x-kubernetes-map-type: atomic + variables: + description: |- + Variables contain definitions of variables that can be used in composition of other expressions. + Each variable is defined as a named CEL expression. + The variables defined here will be available under `variables` in other expressions of the policy. + items: + description: Variable is the definition of a variable + that is used for composition. + properties: + expression: + description: |- + Expression is the expression that will be evaluated as the value of the variable. + The CEL expression has access to the same identifiers as the CEL expressions in Validation. + type: string + name: + description: |- + Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. + The variable can be accessed in other expressions through `variables` + For example, if name is "foo", the variable will be available as `variables.foo` + type: string + required: + - expression + - name + type: object + type: array + type: object + deny: + description: Deny defines conditions used to pass or fail + a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + foreach: + description: ForEach applies validate rules to a list of + sub-elements by creating a context for each entry in the + list and looping over it to apply the specified logic. + items: + description: ForEachValidation applies validate rules + to a list of sub-elements by creating a context for + each entry in the list and looping over it to apply + the specified logic. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + deny: + description: Deny defines conditions used to pass + or fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + elementScope: + description: |- + ElementScope specifies whether to use the current list element as the scope for validation. Defaults to "true" if not specified. + When set to "false", "request.object" is used as the validation scope within the foreach + block to allow referencing other elements in the subtree. + type: boolean + foreach: + description: Foreach declares a nested foreach iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + manifests: + description: Manifest specifies conditions for manifest + verification + properties: + annotationDomain: + description: AnnotationDomain is custom domain of annotation + for message and signature. Default is "cosign.sigstore.dev". + type: string + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set of + Attestor used to specify a more complex + set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one + or more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates used + to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions are + certificate-extensions used for keyless + signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret resource + that contains a public key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + dryRun: + description: DryRun configuration + properties: + enable: + type: boolean + namespace: + type: string + type: object + ignoreFields: + description: Fields which will be ignored while comparing + manifests. + items: + properties: + fields: + items: + type: string + type: array + objects: + items: + properties: + group: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + version: + type: string + type: object + type: array + type: object + type: array + repository: + description: |- + Repository is an optional alternate OCI repository to use for resource bundle reference. + The repository can be overridden per Attestor or Attestation. + type: string + type: object + message: + description: Message specifies a custom message to be displayed + on failure. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + podSecurity: + description: |- + PodSecurity applies exemptions for Kubernetes Pod Security admission + by specifying exclusions for Pod Security Standards controls. + properties: + exclude: + description: Exclude specifies the Pod Security Standard + controls to be excluded. + items: + description: PodSecurityStandard specifies the Pod + Security Standard controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values + that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + level: + description: |- + Level defines the Pod Security Standard level to be applied to workloads. + Allowed values are privileged, baseline, and restricted. + enum: + - privileged + - baseline + - restricted + type: string + version: + description: |- + Version defines the Pod Security Standard versions that Kubernetes supports. + Allowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest. + enum: + - v1.19 + - v1.20 + - v1.21 + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - latest + type: string + type: object + type: object + verifyImages: + description: VerifyImages is used to verify image signatures + and mutate them to add a digest + items: + description: |- + ImageVerification validates that images that match the specified pattern + are signed with the supplied public key. Once the image is verified it is + mutated to include the SHA digest retrieved during the registration. + properties: + additionalExtensions: + additionalProperties: + type: string + description: Deprecated. + type: object + annotations: + additionalProperties: + type: string + description: Deprecated. Use annotations per Attestor + instead. + type: object + attestations: + description: |- + Attestations are optional checks for signed in-toto Statements used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statement declarations. + items: + description: |- + Attestation are checks for signed in-toto Statements that are used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statements. + properties: + attestors: + description: Attestors specify the required attestors + (i.e. authorities). + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more + complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and + sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + conditions: + description: |- + Conditions are used to verify attributes within a Predicate. If no Conditions are specified + the attestation check is satisfied as long there are predicates that match the predicate type. + items: + description: |- + AnyAllConditions consists of conditions wrapped denoting a logical criteria to be fulfilled. + AnyConditions get fulfilled when at least one of its sub-conditions passes. + AllConditions get fulfilled only when all of its sub-conditions pass. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: array + predicateType: + description: Deprecated in favour of 'Type', to + be removed soon + type: string + type: + description: Type defines the type of attestation + contained within the Statement. + type: string + type: object + type: array + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set of Attestor + used to specify a more complex set of match + authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one or + more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates used + to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions are + certificate-extensions used for keyless + signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified identity + used for keyless signing, for example + the email address. + type: string + type: object + keys: + description: Keys specifies one or more public + keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret resource + that contains a public key + properties: + name: + description: Name of the secret. The + provided secret must contain a key + named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values are + sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + image: + description: Deprecated. Use ImageReferences instead. + type: string + imageReferences: + description: |- + ImageReferences is a list of matching image reference patterns. At least one pattern in the + list must match the image for the rule to apply. Each image reference consists of a registry + address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry. + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + issuer: + description: Deprecated. Use KeylessAttestor instead. + type: string + key: + description: Deprecated. Use StaticKeyAttestor instead. + type: string + mutateDigest: + default: true + description: |- + MutateDigest enables replacement of image tags with digests. + Defaults to true. + type: boolean + repository: + description: |- + Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule. + If specified Repository will override the default OCI image repository configured for the installation. + The repository can also be overridden per Attestor or Attestation. + type: string + required: + default: true + description: Required validates that images are verified + i.e. have matched passed a signature or attestation + check. + type: boolean + roots: + description: Deprecated. Use KeylessAttestor instead. + type: string + skipImageReferences: + description: |- + SkipImageReferences is a list of matching image reference patterns that should be skipped. + At least one pattern in the list must match the image for the rule to be skipped. Each image reference + consists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + subject: + description: Deprecated. Use KeylessAttestor instead. + type: string + type: + description: |- + Type specifies the method of signature validation. The allowed options + are Cosign and Notary. By default Cosign is used if a type is not specified. + enum: + - Cosign + - Notary + type: string + useCache: + default: true + description: UseCache enables caching of image verify + responses for this rule. + type: boolean + verifyDigest: + default: true + description: VerifyDigest validates that images have a + digest. + type: boolean + type: object + type: array + required: + - name + type: object + type: array + schemaValidation: + description: Deprecated. + type: boolean + useServerSideApply: + description: |- + UseServerSideApply controls whether to use server-side apply for generate rules + If is set to "true" create & update for generate rules will use apply instead of create/update. + Defaults to "false" if not specified. + type: boolean + validationFailureAction: + default: Audit + description: |- + ValidationFailureAction defines if a validation policy rule violation should block + the admission review request (enforce), or allow (audit) the admission review request + and report an error in a policy report. Optional. + Allowed values are audit or enforce. The default value is "Audit". + enum: + - audit + - enforce + - Audit + - Enforce + type: string + validationFailureActionOverrides: + description: |- + ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction + namespace-wise. It overrides ValidationFailureAction for the specified namespaces. + items: + properties: + action: + description: ValidationFailureAction defines the policy validation + failure action + enum: + - audit + - enforce + - Audit + - Enforce + type: string + namespaceSelector: + description: |- + A label selector is a label query over a set of resources. The result of matchLabels and + matchExpressions are ANDed. An empty label selector matches all objects. A null + label selector matches no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + type: object + type: array + webhookConfiguration: + description: |- + WebhookConfiguration specifies the custom configuration for Kubernetes admission webhookconfiguration. + Requires Kubernetes 1.27 or later. + properties: + matchConditions: + description: MatchCondition configures admission webhook matchConditions. + items: + description: MatchCondition represents a condition which must + by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + type: object + webhookTimeoutSeconds: + description: |- + WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy. + After the configured time expires, the admission request may fail, or may simply ignore the policy results, + based on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds. + format: int32 + type: integer + type: object + status: + description: Status contains policy runtime data. + properties: + autogen: + description: AutogenStatus contains autogen status information. + properties: + rules: + description: Rules is a list of Rule instances. It contains auto + generated rules added for pod controllers + items: + description: |- + Rule defines a validation, mutation, or generation control for matching resources. + Each rules contains a match declaration to select resources, and an optional exclude + declaration to specify which resources to exclude. + properties: + celPreconditions: + description: |- + CELPreconditions are used to determine if a policy rule should be applied by evaluating a + set of CEL conditions. It can only be used with the validate.cel subrule + items: + description: MatchCondition represents a condition which + must by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST + data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET + or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference + to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object + representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when this policy rule should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one of + the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + generate: + description: Generation is used to create new resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + clone: + description: |- + Clone specifies the source resource used to populate each generated resource. + At most one of Data or Clone can be specified. If neither are provided, the generated + resource will be created with default data only. + properties: + name: + description: Name specifies name of the resource. + type: string + namespace: + description: Namespace specifies source resource + namespace. + type: string + type: object + cloneList: + description: CloneList specifies the list of source + resource used to populate each generated resource. + properties: + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + namespace: + description: Namespace specifies source resource + namespace. + type: string + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels`. + wildcard characters are not supported. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + data: + description: |- + Data provides the resource declaration used to populate each generated resource. + At most one of Data or Clone must be specified. If neither are provided, the generated + resource will be created with default data only. + x-kubernetes-preserve-unknown-fields: true + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + orphanDownstreamOnPolicyDelete: + description: |- + OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated + them is deleted with synchronization enabled. This option is only applicable to generate rules of the data type. + See https://kyverno.io/docs/writing-policies/generate/#data-examples. + Defaults to "false" if not specified. + type: boolean + synchronize: + description: |- + Synchronize controls if generated resources should be kept in-sync with their source resource. + If Synchronize is set to "true" changes to generated resources will be overwritten with resource + data from Data or the resource specified in the Clone declaration. + Optional. Defaults to "false" if not specified. + type: boolean + uid: + description: UID specifies the resource uid. + type: string + type: object + imageExtractors: + additionalProperties: + items: + properties: + jmesPath: + description: |- + JMESPath is an optional JMESPath expression to apply to the image value. + This is useful when the extracted image begins with a prefix like 'docker://'. + The 'trim_prefix' function may be used to trim the prefix: trim_prefix(@, 'docker://'). + Note - Image digest mutation may not be used when applying a JMESPAth to an image. + type: string + key: + description: |- + Key is an optional name of the field within 'path' that will be used to uniquely identify an image. + Note - this field MUST be unique. + type: string + name: + description: |- + Name is the entry the image will be available under 'images.' in the context. + If this field is not defined, image entries will appear under 'images.custom'. + type: string + path: + description: |- + Path is the path to the object containing the image field in a custom resource. + It should be slash-separated. Each slash-separated key must be a valid YAML key or a wildcard '*'. + Wildcard keys are expanded in case of arrays or objects. + type: string + value: + description: |- + Value is an optional name of the field within 'path' that points to the image URI. + This is useful when a custom 'key' is also defined. + type: string + required: + - path + type: object + type: array + description: |- + ImageExtractors defines a mapping from kinds to ImageExtractorConfigs. + This config is only valid for verifyImages rules. + type: object + match: + description: |- + MatchResources defines when this policy rule should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one of + the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + mutate: + description: Mutation is used to modify matching resources. + properties: + foreach: + description: ForEach applies mutation rules to a list + of sub-elements by creating a context for each entry + in the list and looping over it to apply the specified + logic. + items: + description: ForEachMutation applies mutation rules + to a list of sub-elements by creating a context + for each entry in the list and looping over it to + apply the specified logic. + properties: + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + foreach: + description: Foreach declares a nested foreach + iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + order: + description: |- + Order defines the iteration order on the list. + Can be Ascending to iterate from first to last element or Descending to iterate in from last to first element. + enum: + - Ascending + - Descending + type: string + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + targets: + description: Targets defines the target resources to + be mutated. + items: + description: TargetResourceSpec defines targets for + mutating existing resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + type: object + name: + description: Name is a label to identify the rule, It must + be unique within the policy. + maxLength: 63 + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + skipBackgroundRequests: + default: true + description: |- + SkipBackgroundRequests bypasses admission requests that are sent by the background controller. + The default value is set to "true", it must be set to "false" to apply + generate and mutateExisting rules to those requests. + type: boolean + validate: + description: Validation is used to validate matching resources. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + cel: + description: CEL allows validation checks using the + Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/). + properties: + auditAnnotations: + description: AuditAnnotations contains CEL expressions + which are used to produce audit annotations for + the audit event of the API request. + items: + description: AuditAnnotation describes how to + produce an audit annotation for an API request. + properties: + key: + description: |- + key specifies the audit annotation key. The audit annotation keys of + a ValidatingAdmissionPolicy must be unique. The key must be a qualified + name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + + + The key is combined with the resource name of the + ValidatingAdmissionPolicy to construct an audit annotation key: + "{ValidatingAdmissionPolicy name}/{key}". + + + If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy + and the same audit annotation key, the annotation key will be identical. + In this case, the first annotation written with the key will be included + in the audit event and all subsequent annotations with the same key + will be discarded. + + + Required. + type: string + valueExpression: + description: |- + valueExpression represents the expression which is evaluated by CEL to + produce an audit annotation value. The expression must evaluate to either + a string or null value. If the expression evaluates to a string, the + audit annotation is included with the string value. If the expression + evaluates to null or empty string the audit annotation will be omitted. + The valueExpression may be no longer than 5kb in length. + If the result of the valueExpression is more than 10kb in length, it + will be truncated to 10kb. + + + If multiple ValidatingAdmissionPolicyBinding resources match an + API request, then the valueExpression will be evaluated for + each binding. All unique values produced by the valueExpressions + will be joined together in a comma-separated list. + + + Required. + type: string + required: + - key + - valueExpression + type: object + type: array + expressions: + description: Expressions is a list of CELExpression + types. + items: + description: Validation specifies the CEL expression + which is used to apply the validation. + properties: + expression: + description: "Expression represents the expression + which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL + expressions have access to the contents + of the API request/response, organized into + CEL variables as well as some other useful + variables:\n\n\n- 'object' - The object + from the incoming request. The value is + null for DELETE requests.\n- 'oldObject' + - The existing object. The value is null + for CREATE requests.\n- 'request' - Attributes + of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- + 'params' - Parameter resource referred to + by the policy binding being evaluated. Only + populated if the policy has a ParamKind.\n- + 'namespaceObject' - The namespace object + that the incoming object belongs to. The + value is null for cluster-scoped resources.\n- + 'variables' - Map of composited variables, + from its name to its lazily evaluated value.\n + \ For example, a variable named 'foo' can + be accessed as 'variables.foo'.\n- 'authorizer' + - A CEL Authorizer. May be used to perform + authorization checks for the principal (user + or service account) of the request.\n See + https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- + 'authorizer.requestResource' - A CEL ResourceCheck + constructed from the 'authorizer' and configured + with the\n request resource.\n\n\nThe `apiVersion`, + `kind`, `metadata.name` and `metadata.generateName` + are always accessible from the root of the\nobject. + No other metadata properties are accessible.\n\n\nOnly + property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` + are accessible.\nAccessible property names + are escaped according to the following rules + when accessed in the expression:\n- '__' + escapes to '__underscores__'\n- '.' escapes + to '__dot__'\n- '-' escapes to '__dash__'\n- + '/' escapes to '__slash__'\n- Property names + that exactly match a CEL RESERVED keyword + escape to '__{keyword}__'. The keywords + are:\n\t \"true\", \"false\", \"null\", + \"in\", \"as\", \"break\", \"const\", \"continue\", + \"else\", \"for\", \"function\", \"if\",\n\t + \ \"import\", \"let\", \"loop\", \"package\", + \"namespace\", \"return\".\nExamples:\n + \ - Expression accessing a property named + \"namespace\": {\"Expression\": \"object.__namespace__ + > 0\"}\n - Expression accessing a property + named \"x-prop\": {\"Expression\": \"object.x__dash__prop + > 0\"}\n - Expression accessing a property + named \"redact__d\": {\"Expression\": \"object.redact__underscores__d + > 0\"}\n\n\nEquality on arrays with list + type of 'set' or 'map' ignores element order, + i.e. [1, 2] == [2, 1].\nConcatenation on + arrays with x-kubernetes-list-type use the + semantics of the list type:\n - 'set': + `X + Y` performs a union where the array + positions of all elements in `X` are preserved + and\n non-intersecting elements in `Y` + are appended, retaining their partial order.\n + \ - 'map': `X + Y` performs a merge where + the array positions of all keys in `X` are + preserved but the values\n are overwritten + by values in `Y` when the key sets of `X` + and `Y` intersect. Elements in `Y` with\n + \ non-intersecting keys are appended, + retaining their partial order.\nRequired." + type: string + message: + description: |- + Message represents the message displayed when validation fails. The message is required if the Expression contains + line breaks. The message must not contain line breaks. + If unset, the message is "failed rule: {Rule}". + e.g. "must be a URL with the host matching spec.host" + If the Expression contains line breaks. Message is required. + The message must not contain line breaks. + If unset, the message is "failed Expression: {Expression}". + type: string + messageExpression: + description: |- + messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. + Since messageExpression is used as a failure message, it must evaluate to a string. + If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. + If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced + as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string + that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and + the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. + messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. + Example: + "object.x must be less than max ("+string(params.max)+")" + type: string + reason: + description: |- + Reason represents a machine-readable description of why this validation failed. + If this is the first validation in the list to fail, this reason, as well as the + corresponding HTTP response code, are used in the + HTTP response to the client. + The currently supported reasons are: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". + If not set, StatusReasonInvalid is used in the response to the client. + type: string + required: + - expression + type: object + type: array + paramKind: + description: ParamKind is a tuple of Group Kind + and Version. + properties: + apiVersion: + description: |- + APIVersion is the API group version the resources belong to. + In format of "group/version". + Required. + type: string + kind: + description: |- + Kind is the API kind the resources belong to. + Required. + type: string + type: object + x-kubernetes-map-type: atomic + paramRef: + description: ParamRef references a parameter resource. + properties: + name: + description: |- + `name` is the name of the resource being referenced. + + + `name` and `selector` are mutually exclusive properties. If one is set, + the other must be unset. + type: string + namespace: + description: |- + namespace is the namespace of the referenced resource. Allows limiting + the search for params to a specific namespace. Applies to both `name` and + `selector` fields. + + + A per-namespace parameter may be used by specifying a namespace-scoped + `paramKind` in the policy and leaving this field empty. + + + - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this + field results in a configuration error. + + + - If `paramKind` is namespace-scoped, the namespace of the object being + evaluated for admission will be used when this field is left unset. Take + care that if this is left empty the binding must not match any cluster-scoped + resources, which will result in an error. + type: string + parameterNotFoundAction: + description: |- + `parameterNotFoundAction` controls the behavior of the binding when the resource + exists, and name or selector is valid, but there are no parameters + matched by the binding. If the value is set to `Allow`, then no + matched parameters will be treated as successful validation by the binding. + If set to `Deny`, then no matched parameters will be subject to the + `failurePolicy` of the policy. + + + Allowed values are `Allow` or `Deny` + Default to `Deny` + type: string + selector: + description: |- + selector can be used to match multiple param objects based on their labels. + Supply selector: {} to match all resources of the ParamKind. + + + If multiple params are found, they are all evaluated with the policy expressions + and the results are ANDed together. + + + One of `name` or `selector` must be set, but `name` and `selector` are + mutually exclusive properties. If one is set, the other must be unset. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + x-kubernetes-map-type: atomic + variables: + description: |- + Variables contain definitions of variables that can be used in composition of other expressions. + Each variable is defined as a named CEL expression. + The variables defined here will be available under `variables` in other expressions of the policy. + items: + description: Variable is the definition of a variable + that is used for composition. + properties: + expression: + description: |- + Expression is the expression that will be evaluated as the value of the variable. + The CEL expression has access to the same identifiers as the CEL expressions in Validation. + type: string + name: + description: |- + Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. + The variable can be accessed in other expressions through `variables` + For example, if name is "foo", the variable will be available as `variables.foo` + type: string + required: + - expression + - name + type: object + type: array + type: object + deny: + description: Deny defines conditions used to pass or + fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + foreach: + description: ForEach applies validate rules to a list + of sub-elements by creating a context for each entry + in the list and looping over it to apply the specified + logic. + items: + description: ForEachValidation applies validate rules + to a list of sub-elements by creating a context + for each entry in the list and looping over it to + apply the specified logic. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + deny: + description: Deny defines conditions used to pass + or fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + elementScope: + description: |- + ElementScope specifies whether to use the current list element as the scope for validation. Defaults to "true" if not specified. + When set to "false", "request.object" is used as the validation scope within the foreach + block to allow referencing other elements in the subtree. + type: boolean + foreach: + description: Foreach declares a nested foreach + iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + pattern: + description: Pattern specifies an overlay-style + pattern used to check resources. + x-kubernetes-preserve-unknown-fields: true + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + manifests: + description: Manifest specifies conditions for manifest + verification + properties: + annotationDomain: + description: AnnotationDomain is custom domain of + annotation for message and signature. Default + is "cosign.sigstore.dev". + type: string + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more + complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and + sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + dryRun: + description: DryRun configuration + properties: + enable: + type: boolean + namespace: + type: string + type: object + ignoreFields: + description: Fields which will be ignored while + comparing manifests. + items: + properties: + fields: + items: + type: string + type: array + objects: + items: + properties: + group: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + version: + type: string + type: object + type: array + type: object + type: array + repository: + description: |- + Repository is an optional alternate OCI repository to use for resource bundle reference. + The repository can be overridden per Attestor or Attestation. + type: string + type: object + message: + description: Message specifies a custom message to be + displayed on failure. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + podSecurity: + description: |- + PodSecurity applies exemptions for Kubernetes Pod Security admission + by specifying exclusions for Pod Security Standards controls. + properties: + exclude: + description: Exclude specifies the Pod Security + Standard controls to be excluded. + items: + description: PodSecurityStandard specifies the + Pod Security Standard controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values + that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + level: + description: |- + Level defines the Pod Security Standard level to be applied to workloads. + Allowed values are privileged, baseline, and restricted. + enum: + - privileged + - baseline + - restricted + type: string + version: + description: |- + Version defines the Pod Security Standard versions that Kubernetes supports. + Allowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest. + enum: + - v1.19 + - v1.20 + - v1.21 + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - latest + type: string + type: object + type: object + verifyImages: + description: VerifyImages is used to verify image signatures + and mutate them to add a digest + items: + description: |- + ImageVerification validates that images that match the specified pattern + are signed with the supplied public key. Once the image is verified it is + mutated to include the SHA digest retrieved during the registration. + properties: + additionalExtensions: + additionalProperties: + type: string + description: Deprecated. + type: object + annotations: + additionalProperties: + type: string + description: Deprecated. Use annotations per Attestor + instead. + type: object + attestations: + description: |- + Attestations are optional checks for signed in-toto Statements used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statement declarations. + items: + description: |- + Attestation are checks for signed in-toto Statements that are used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statements. + properties: + attestors: + description: Attestors specify the required + attestors (i.e. authorities). + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested + set of Attestor used to specify + a more complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an + optional PEM encoded set of + certificates used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions + used for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the + verified identity used for + keyless signing, for example + the email address. + type: string + type: object + keys: + description: Keys specifies one + or more public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a + Secret resource that contains + a public key + properties: + name: + description: Name of the + secret. The provided secret + must contain a key named + cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature + algorithm for public keys. + Supported values are sha224, + sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + conditions: + description: |- + Conditions are used to verify attributes within a Predicate. If no Conditions are specified + the attestation check is satisfied as long there are predicates that match the predicate type. + items: + description: |- + AnyAllConditions consists of conditions wrapped denoting a logical criteria to be fulfilled. + AnyConditions get fulfilled when at least one of its sub-conditions passes. + AllConditions get fulfilled only when all of its sub-conditions pass. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context + entry (using JMESPath) for conditional + rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context + entry (using JMESPath) for conditional + rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: array + predicateType: + description: Deprecated in favour of 'Type', + to be removed soon + type: string + type: + description: Type defines the type of attestation + contained within the Statement. + type: string + type: object + type: array + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more complex + set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one + or more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + image: + description: Deprecated. Use ImageReferences instead. + type: string + imageReferences: + description: |- + ImageReferences is a list of matching image reference patterns. At least one pattern in the + list must match the image for the rule to apply. Each image reference consists of a registry + address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry. + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + issuer: + description: Deprecated. Use KeylessAttestor instead. + type: string + key: + description: Deprecated. Use StaticKeyAttestor instead. + type: string + mutateDigest: + default: true + description: |- + MutateDigest enables replacement of image tags with digests. + Defaults to true. + type: boolean + repository: + description: |- + Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule. + If specified Repository will override the default OCI image repository configured for the installation. + The repository can also be overridden per Attestor or Attestation. + type: string + required: + default: true + description: Required validates that images are verified + i.e. have matched passed a signature or attestation + check. + type: boolean + roots: + description: Deprecated. Use KeylessAttestor instead. + type: string + skipImageReferences: + description: |- + SkipImageReferences is a list of matching image reference patterns that should be skipped. + At least one pattern in the list must match the image for the rule to be skipped. Each image reference + consists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + subject: + description: Deprecated. Use KeylessAttestor instead. + type: string + type: + description: |- + Type specifies the method of signature validation. The allowed options + are Cosign and Notary. By default Cosign is used if a type is not specified. + enum: + - Cosign + - Notary + type: string + useCache: + default: true + description: UseCache enables caching of image verify + responses for this rule. + type: boolean + verifyDigest: + default: true + description: VerifyDigest validates that images have + a digest. + type: boolean + type: object + type: array + required: + - name + type: object + type: array + type: object + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + ready: + description: Deprecated in favor of Conditions + type: boolean + rulecount: + description: |- + RuleCountStatus contains four variables which describes counts for + validate, generate, mutate and verify images rules + properties: + generate: + description: Count for generate rules in policy + type: integer + mutate: + description: Count for mutate rules in policy + type: integer + validate: + description: Count for validate rules in policy + type: integer + verifyimages: + description: Count for verify image rules in policy + type: integer + required: + - generate + - mutate + - validate + - verifyimages + type: object + validatingadmissionpolicy: + description: ValidatingAdmissionPolicy contains status information + properties: + generated: + description: Generated indicates whether a validating admission + policy is generated from the policy or not + type: boolean + message: + description: |- + Message is a human readable message indicating details about the generation of validating admission policy + It is an empty string when validating admission policy is successfully generated. + type: string + required: + - generated + - message + type: object + required: + - ready + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.admission + name: ADMISSION + type: boolean + - jsonPath: .spec.background + name: BACKGROUND + type: boolean + - jsonPath: .spec.validationFailureAction + name: VALIDATE ACTION + type: string + - jsonPath: .status.conditions[?(@.type == "Ready")].status + name: READY + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.failurePolicy + name: FAILURE POLICY + priority: 1 + type: string + - jsonPath: .status.rulecount.validate + name: VALIDATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.mutate + name: MUTATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.generate + name: GENERATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.verifyimages + name: VERIFY IMAGES + priority: 1 + type: integer + - jsonPath: .status.conditions[?(@.type == "Ready")].message + name: MESSAGE + type: string + name: v2beta1 + schema: + openAPIV3Schema: + description: ClusterPolicy declares validation, mutation, and generation behaviors + for matching resources. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy behaviors. + properties: + admission: + default: true + description: |- + Admission controls if rules are applied during admission. + Optional. Default value is "true". + type: boolean + applyRules: + description: |- + ApplyRules controls how rules in a policy are applied. Rule are processed in + the order of declaration. When set to `One` processing stops after a rule has + been applied i.e. the rule matches and results in a pass, fail, or error. When + set to `All` all rules in the policy are processed. The default is `All`. + enum: + - All + - One + type: string + background: + default: true + description: |- + Background controls if rules are applied to existing resources during a background scan. + Optional. Default value is "true". The value must be set to "false" if the policy rule + uses variables that are only available in the admission review request (e.g. user name). + type: boolean + failurePolicy: + description: |- + FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled. + Rules within the same policy share the same failure behavior. + Allowed values are Ignore or Fail. Defaults to Fail. + enum: + - Ignore + - Fail + type: string + generateExisting: + description: |- + GenerateExisting controls whether to trigger generate rule in existing resources + If is set to "true" generate rule will be triggered and applied to existing matched resources. + Defaults to "false" if not specified. + type: boolean + generateExistingOnPolicyUpdate: + description: Deprecated, use generateExisting instead + type: boolean + mutateExistingOnPolicyUpdate: + description: |- + MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events. + Default value is "false". + type: boolean + rules: + description: |- + Rules is a list of Rule instances. A Policy contains multiple rules and + each rule can validate, mutate, or generate resources. + items: + description: |- + Rule defines a validation, mutation, or generation control for matching resources. + Each rules contains a match declaration to select resources, and an optional exclude + declaration to specify which resources to exclude. + properties: + celPreconditions: + description: |- + CELPreconditions are used to determine if a policy rule should be applied by evaluating a + set of CEL conditions. It can only be used with the validate.cel subrule + items: + description: MatchCondition represents a condition which must + by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + context: + description: Context defines variables and data sources that + can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST + data + properties: + key: + description: Key is a unique identifier for + the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET + or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference + to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when this policy rule should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + generate: + description: Generation is used to create new resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + clone: + description: |- + Clone specifies the source resource used to populate each generated resource. + At most one of Data or Clone can be specified. If neither are provided, the generated + resource will be created with default data only. + properties: + name: + description: Name specifies name of the resource. + type: string + namespace: + description: Namespace specifies source resource namespace. + type: string + type: object + cloneList: + description: CloneList specifies the list of source resource + used to populate each generated resource. + properties: + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + namespace: + description: Namespace specifies source resource namespace. + type: string + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels`. + wildcard characters are not supported. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + data: + description: |- + Data provides the resource declaration used to populate each generated resource. + At most one of Data or Clone must be specified. If neither are provided, the generated + resource will be created with default data only. + x-kubernetes-preserve-unknown-fields: true + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + orphanDownstreamOnPolicyDelete: + description: |- + OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated + them is deleted with synchronization enabled. This option is only applicable to generate rules of the data type. + See https://kyverno.io/docs/writing-policies/generate/#data-examples. + Defaults to "false" if not specified. + type: boolean + synchronize: + description: |- + Synchronize controls if generated resources should be kept in-sync with their source resource. + If Synchronize is set to "true" changes to generated resources will be overwritten with resource + data from Data or the resource specified in the Clone declaration. + Optional. Defaults to "false" if not specified. + type: boolean + uid: + description: UID specifies the resource uid. + type: string + type: object + imageExtractors: + additionalProperties: + items: + properties: + jmesPath: + description: |- + JMESPath is an optional JMESPath expression to apply to the image value. + This is useful when the extracted image begins with a prefix like 'docker://'. + The 'trim_prefix' function may be used to trim the prefix: trim_prefix(@, 'docker://'). + Note - Image digest mutation may not be used when applying a JMESPAth to an image. + type: string + key: + description: |- + Key is an optional name of the field within 'path' that will be used to uniquely identify an image. + Note - this field MUST be unique. + type: string + name: + description: |- + Name is the entry the image will be available under 'images.' in the context. + If this field is not defined, image entries will appear under 'images.custom'. + type: string + path: + description: |- + Path is the path to the object containing the image field in a custom resource. + It should be slash-separated. Each slash-separated key must be a valid YAML key or a wildcard '*'. + Wildcard keys are expanded in case of arrays or objects. + type: string + value: + description: |- + Value is an optional name of the field within 'path' that points to the image URI. + This is useful when a custom 'key' is also defined. + type: string + required: + - path + type: object + type: array + description: |- + ImageExtractors defines a mapping from kinds to ImageExtractorConfigs. + This config is only valid for verifyImages rules. + type: object + match: + description: |- + MatchResources defines when this policy rule should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + mutate: + description: Mutation is used to modify matching resources. + properties: + foreach: + description: ForEach applies mutation rules to a list of + sub-elements by creating a context for each entry in the + list and looping over it to apply the specified logic. + items: + description: ForEachMutation applies mutation rules to + a list of sub-elements by creating a context for each + entry in the list and looping over it to apply the specified + logic. + properties: + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + foreach: + description: Foreach declares a nested foreach iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + order: + description: |- + Order defines the iteration order on the list. + Can be Ascending to iterate from first to last element or Descending to iterate in from last to first element. + enum: + - Ascending + - Descending + type: string + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + targets: + description: Targets defines the target resources to be + mutated. + items: + description: TargetResourceSpec defines targets for mutating + existing resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + type: object + name: + description: Name is a label to identify the rule, It must be + unique within the policy. + maxLength: 63 + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) + for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) + for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + skipBackgroundRequests: + default: true + description: |- + SkipBackgroundRequests bypasses admission requests that are sent by the background controller. + The default value is set to "true", it must be set to "false" to apply + generate and mutateExisting rules to those requests. + type: boolean + validate: + description: Validation is used to validate matching resources. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + cel: + description: CEL allows validation checks using the Common + Expression Language (https://kubernetes.io/docs/reference/using-api/cel/). + properties: + auditAnnotations: + description: AuditAnnotations contains CEL expressions + which are used to produce audit annotations for the + audit event of the API request. + items: + description: AuditAnnotation describes how to produce + an audit annotation for an API request. + properties: + key: + description: |- + key specifies the audit annotation key. The audit annotation keys of + a ValidatingAdmissionPolicy must be unique. The key must be a qualified + name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + + + The key is combined with the resource name of the + ValidatingAdmissionPolicy to construct an audit annotation key: + "{ValidatingAdmissionPolicy name}/{key}". + + + If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy + and the same audit annotation key, the annotation key will be identical. + In this case, the first annotation written with the key will be included + in the audit event and all subsequent annotations with the same key + will be discarded. + + + Required. + type: string + valueExpression: + description: |- + valueExpression represents the expression which is evaluated by CEL to + produce an audit annotation value. The expression must evaluate to either + a string or null value. If the expression evaluates to a string, the + audit annotation is included with the string value. If the expression + evaluates to null or empty string the audit annotation will be omitted. + The valueExpression may be no longer than 5kb in length. + If the result of the valueExpression is more than 10kb in length, it + will be truncated to 10kb. + + + If multiple ValidatingAdmissionPolicyBinding resources match an + API request, then the valueExpression will be evaluated for + each binding. All unique values produced by the valueExpressions + will be joined together in a comma-separated list. + + + Required. + type: string + required: + - key + - valueExpression + type: object + type: array + expressions: + description: Expressions is a list of CELExpression + types. + items: + description: Validation specifies the CEL expression + which is used to apply the validation. + properties: + expression: + description: "Expression represents the expression + which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL + expressions have access to the contents of the + API request/response, organized into CEL variables + as well as some other useful variables:\n\n\n- + 'object' - The object from the incoming request. + The value is null for DELETE requests.\n- 'oldObject' + - The existing object. The value is null for + CREATE requests.\n- 'request' - Attributes of + the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- + 'params' - Parameter resource referred to by + the policy binding being evaluated. Only populated + if the policy has a ParamKind.\n- 'namespaceObject' + - The namespace object that the incoming object + belongs to. The value is null for cluster-scoped + resources.\n- 'variables' - Map of composited + variables, from its name to its lazily evaluated + value.\n For example, a variable named 'foo' + can be accessed as 'variables.foo'.\n- 'authorizer' + - A CEL Authorizer. May be used to perform authorization + checks for the principal (user or service account) + of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- + 'authorizer.requestResource' - A CEL ResourceCheck + constructed from the 'authorizer' and configured + with the\n request resource.\n\n\nThe `apiVersion`, + `kind`, `metadata.name` and `metadata.generateName` + are always accessible from the root of the\nobject. + No other metadata properties are accessible.\n\n\nOnly + property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` + are accessible.\nAccessible property names are + escaped according to the following rules when + accessed in the expression:\n- '__' escapes + to '__underscores__'\n- '.' escapes to '__dot__'\n- + '-' escapes to '__dash__'\n- '/' escapes to + '__slash__'\n- Property names that exactly match + a CEL RESERVED keyword escape to '__{keyword}__'. + The keywords are:\n\t \"true\", \"false\", + \"null\", \"in\", \"as\", \"break\", \"const\", + \"continue\", \"else\", \"for\", \"function\", + \"if\",\n\t \"import\", \"let\", \"loop\", + \"package\", \"namespace\", \"return\".\nExamples:\n + \ - Expression accessing a property named \"namespace\": + {\"Expression\": \"object.__namespace__ > 0\"}\n + \ - Expression accessing a property named \"x-prop\": + {\"Expression\": \"object.x__dash__prop > 0\"}\n + \ - Expression accessing a property named \"redact__d\": + {\"Expression\": \"object.redact__underscores__d + > 0\"}\n\n\nEquality on arrays with list type + of 'set' or 'map' ignores element order, i.e. + [1, 2] == [2, 1].\nConcatenation on arrays with + x-kubernetes-list-type use the semantics of + the list type:\n - 'set': `X + Y` performs + a union where the array positions of all elements + in `X` are preserved and\n non-intersecting + elements in `Y` are appended, retaining their + partial order.\n - 'map': `X + Y` performs + a merge where the array positions of all keys + in `X` are preserved but the values\n are + overwritten by values in `Y` when the key sets + of `X` and `Y` intersect. Elements in `Y` with\n + \ non-intersecting keys are appended, retaining + their partial order.\nRequired." + type: string + message: + description: |- + Message represents the message displayed when validation fails. The message is required if the Expression contains + line breaks. The message must not contain line breaks. + If unset, the message is "failed rule: {Rule}". + e.g. "must be a URL with the host matching spec.host" + If the Expression contains line breaks. Message is required. + The message must not contain line breaks. + If unset, the message is "failed Expression: {Expression}". + type: string + messageExpression: + description: |- + messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. + Since messageExpression is used as a failure message, it must evaluate to a string. + If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. + If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced + as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string + that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and + the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. + messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. + Example: + "object.x must be less than max ("+string(params.max)+")" + type: string + reason: + description: |- + Reason represents a machine-readable description of why this validation failed. + If this is the first validation in the list to fail, this reason, as well as the + corresponding HTTP response code, are used in the + HTTP response to the client. + The currently supported reasons are: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". + If not set, StatusReasonInvalid is used in the response to the client. + type: string + required: + - expression + type: object + type: array + paramKind: + description: ParamKind is a tuple of Group Kind and + Version. + properties: + apiVersion: + description: |- + APIVersion is the API group version the resources belong to. + In format of "group/version". + Required. + type: string + kind: + description: |- + Kind is the API kind the resources belong to. + Required. + type: string + type: object + x-kubernetes-map-type: atomic + paramRef: + description: ParamRef references a parameter resource. + properties: + name: + description: |- + `name` is the name of the resource being referenced. + + + `name` and `selector` are mutually exclusive properties. If one is set, + the other must be unset. + type: string + namespace: + description: |- + namespace is the namespace of the referenced resource. Allows limiting + the search for params to a specific namespace. Applies to both `name` and + `selector` fields. + + + A per-namespace parameter may be used by specifying a namespace-scoped + `paramKind` in the policy and leaving this field empty. + + + - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this + field results in a configuration error. + + + - If `paramKind` is namespace-scoped, the namespace of the object being + evaluated for admission will be used when this field is left unset. Take + care that if this is left empty the binding must not match any cluster-scoped + resources, which will result in an error. + type: string + parameterNotFoundAction: + description: |- + `parameterNotFoundAction` controls the behavior of the binding when the resource + exists, and name or selector is valid, but there are no parameters + matched by the binding. If the value is set to `Allow`, then no + matched parameters will be treated as successful validation by the binding. + If set to `Deny`, then no matched parameters will be subject to the + `failurePolicy` of the policy. + + + Allowed values are `Allow` or `Deny` + Default to `Deny` + type: string + selector: + description: |- + selector can be used to match multiple param objects based on their labels. + Supply selector: {} to match all resources of the ParamKind. + + + If multiple params are found, they are all evaluated with the policy expressions + and the results are ANDed together. + + + One of `name` or `selector` must be set, but `name` and `selector` are + mutually exclusive properties. If one is set, the other must be unset. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + x-kubernetes-map-type: atomic + variables: + description: |- + Variables contain definitions of variables that can be used in composition of other expressions. + Each variable is defined as a named CEL expression. + The variables defined here will be available under `variables` in other expressions of the policy. + items: + description: Variable is the definition of a variable + that is used for composition. + properties: + expression: + description: |- + Expression is the expression that will be evaluated as the value of the variable. + The CEL expression has access to the same identifiers as the CEL expressions in Validation. + type: string + name: + description: |- + Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. + The variable can be accessed in other expressions through `variables` + For example, if name is "foo", the variable will be available as `variables.foo` + type: string + required: + - expression + - name + type: object + type: array + type: object + deny: + description: Deny defines conditions used to pass or fail + a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: object + foreach: + description: ForEach applies validate rules to a list of + sub-elements by creating a context for each entry in the + list and looping over it to apply the specified logic. + items: + description: ForEachValidation applies validate rules + to a list of sub-elements by creating a context for + each entry in the list and looping over it to apply + the specified logic. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + deny: + description: Deny defines conditions used to pass + or fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + elementScope: + description: |- + ElementScope specifies whether to use the current list element as the scope for validation. Defaults to "true" if not specified. + When set to "false", "request.object" is used as the validation scope within the foreach + block to allow referencing other elements in the subtree. + type: boolean + foreach: + description: Foreach declares a nested foreach iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + manifests: + description: Manifest specifies conditions for manifest + verification + properties: + annotationDomain: + description: AnnotationDomain is custom domain of annotation + for message and signature. Default is "cosign.sigstore.dev". + type: string + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set of + Attestor used to specify a more complex + set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one + or more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates used + to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions are + certificate-extensions used for keyless + signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret resource + that contains a public key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + dryRun: + description: DryRun configuration + properties: + enable: + type: boolean + namespace: + type: string + type: object + ignoreFields: + description: Fields which will be ignored while comparing + manifests. + items: + properties: + fields: + items: + type: string + type: array + objects: + items: + properties: + group: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + version: + type: string + type: object + type: array + type: object + type: array + repository: + description: |- + Repository is an optional alternate OCI repository to use for resource bundle reference. + The repository can be overridden per Attestor or Attestation. + type: string + type: object + message: + description: Message specifies a custom message to be displayed + on failure. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + podSecurity: + description: |- + PodSecurity applies exemptions for Kubernetes Pod Security admission + by specifying exclusions for Pod Security Standards controls. + properties: + exclude: + description: Exclude specifies the Pod Security Standard + controls to be excluded. + items: + description: PodSecurityStandard specifies the Pod + Security Standard controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values + that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + level: + description: |- + Level defines the Pod Security Standard level to be applied to workloads. + Allowed values are privileged, baseline, and restricted. + enum: + - privileged + - baseline + - restricted + type: string + version: + description: |- + Version defines the Pod Security Standard versions that Kubernetes supports. + Allowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest. + enum: + - v1.19 + - v1.20 + - v1.21 + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - latest + type: string + type: object + type: object + verifyImages: + description: VerifyImages is used to verify image signatures + and mutate them to add a digest + items: + description: |- + ImageVerification validates that images that match the specified pattern + are signed with the supplied public key. Once the image is verified it is + mutated to include the SHA digest retrieved during the registration. + properties: + attestations: + description: |- + Attestations are optional checks for signed in-toto Statements used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statement declarations. + items: + description: |- + Attestation are checks for signed in-toto Statements that are used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statements. + properties: + attestors: + description: Attestors specify the required attestors + (i.e. authorities). + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more + complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and + sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + conditions: + description: |- + Conditions are used to verify attributes within a Predicate. If no Conditions are specified + the attestation check is satisfied as long there are predicates that match the predicate type. + items: + description: |- + AnyAllConditions consists of conditions wrapped denoting a logical criteria to be fulfilled. + AnyConditions get fulfilled when at least one of its sub-conditions passes. + AllConditions get fulfilled only when all of its sub-conditions pass. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: array + predicateType: + description: Deprecated in favour of 'Type', to + be removed soon + type: string + type: + description: Type defines the type of attestation + contained within the Statement. + type: string + type: object + type: array + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set of Attestor + used to specify a more complex set of match + authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one or + more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates used + to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions are + certificate-extensions used for keyless + signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified identity + used for keyless signing, for example + the email address. + type: string + type: object + keys: + description: Keys specifies one or more public + keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret resource + that contains a public key + properties: + name: + description: Name of the secret. The + provided secret must contain a key + named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values are + sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + imageReferences: + description: |- + ImageReferences is a list of matching image reference patterns. At least one pattern in the + list must match the image for the rule to apply. Each image reference consists of a registry + address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + mutateDigest: + default: true + description: |- + MutateDigest enables replacement of image tags with digests. + Defaults to true. + type: boolean + repository: + description: |- + Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule. + If specified Repository will override the default OCI image repository configured for the installation. + The repository can also be overridden per Attestor or Attestation. + type: string + required: + default: true + description: Required validates that images are verified + i.e. have matched passed a signature or attestation + check. + type: boolean + skipImageReferences: + description: |- + SkipImageReferences is a list of matching image reference patterns that should be skipped. + At least one pattern in the list must match the image for the rule to be skipped. Each image reference + consists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + type: + description: |- + Type specifies the method of signature validation. The allowed options + are Cosign and Notary. By default Cosign is used if a type is not specified. + enum: + - Cosign + - Notary + type: string + useCache: + default: true + description: UseCache enables caching of image verify + responses for this rule + type: boolean + verifyDigest: + default: true + description: VerifyDigest validates that images have a + digest. + type: boolean + type: object + type: array + required: + - name + type: object + type: array + schemaValidation: + description: Deprecated. + type: boolean + useServerSideApply: + description: |- + UseServerSideApply controls whether to use server-side apply for generate rules + If is set to "true" create & update for generate rules will use apply instead of create/update. + Defaults to "false" if not specified. + type: boolean + validationFailureAction: + default: Audit + description: |- + ValidationFailureAction defines if a validation policy rule violation should block + the admission review request (enforce), or allow (audit) the admission review request + and report an error in a policy report. Optional. + Allowed values are audit or enforce. The default value is "Audit". + enum: + - audit + - enforce + - Audit + - Enforce + type: string + validationFailureActionOverrides: + description: |- + ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction + namespace-wise. It overrides ValidationFailureAction for the specified namespaces. + items: + properties: + action: + description: ValidationFailureAction defines the policy validation + failure action + enum: + - audit + - enforce + - Audit + - Enforce + type: string + namespaceSelector: + description: |- + A label selector is a label query over a set of resources. The result of matchLabels and + matchExpressions are ANDed. An empty label selector matches all objects. A null + label selector matches no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + type: object + type: array + webhookConfiguration: + description: |- + WebhookConfiguration specifies the custom configuration for Kubernetes admission webhookconfiguration. + Requires Kubernetes 1.27 or later. + properties: + matchConditions: + description: MatchCondition configures admission webhook matchConditions. + items: + description: MatchCondition represents a condition which must + by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + type: object + webhookTimeoutSeconds: + description: |- + WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy. + After the configured time expires, the admission request may fail, or may simply ignore the policy results, + based on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds. + format: int32 + type: integer + type: object + status: + description: Status contains policy runtime data. + properties: + autogen: + description: AutogenStatus contains autogen status information. + properties: + rules: + description: Rules is a list of Rule instances. It contains auto + generated rules added for pod controllers + items: + description: |- + Rule defines a validation, mutation, or generation control for matching resources. + Each rules contains a match declaration to select resources, and an optional exclude + declaration to specify which resources to exclude. + properties: + celPreconditions: + description: |- + CELPreconditions are used to determine if a policy rule should be applied by evaluating a + set of CEL conditions. It can only be used with the validate.cel subrule + items: + description: MatchCondition represents a condition which + must by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST + data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET + or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference + to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object + representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when this policy rule should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one of + the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + generate: + description: Generation is used to create new resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + clone: + description: |- + Clone specifies the source resource used to populate each generated resource. + At most one of Data or Clone can be specified. If neither are provided, the generated + resource will be created with default data only. + properties: + name: + description: Name specifies name of the resource. + type: string + namespace: + description: Namespace specifies source resource + namespace. + type: string + type: object + cloneList: + description: CloneList specifies the list of source + resource used to populate each generated resource. + properties: + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + namespace: + description: Namespace specifies source resource + namespace. + type: string + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels`. + wildcard characters are not supported. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + data: + description: |- + Data provides the resource declaration used to populate each generated resource. + At most one of Data or Clone must be specified. If neither are provided, the generated + resource will be created with default data only. + x-kubernetes-preserve-unknown-fields: true + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + orphanDownstreamOnPolicyDelete: + description: |- + OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated + them is deleted with synchronization enabled. This option is only applicable to generate rules of the data type. + See https://kyverno.io/docs/writing-policies/generate/#data-examples. + Defaults to "false" if not specified. + type: boolean + synchronize: + description: |- + Synchronize controls if generated resources should be kept in-sync with their source resource. + If Synchronize is set to "true" changes to generated resources will be overwritten with resource + data from Data or the resource specified in the Clone declaration. + Optional. Defaults to "false" if not specified. + type: boolean + uid: + description: UID specifies the resource uid. + type: string + type: object + imageExtractors: + additionalProperties: + items: + properties: + jmesPath: + description: |- + JMESPath is an optional JMESPath expression to apply to the image value. + This is useful when the extracted image begins with a prefix like 'docker://'. + The 'trim_prefix' function may be used to trim the prefix: trim_prefix(@, 'docker://'). + Note - Image digest mutation may not be used when applying a JMESPAth to an image. + type: string + key: + description: |- + Key is an optional name of the field within 'path' that will be used to uniquely identify an image. + Note - this field MUST be unique. + type: string + name: + description: |- + Name is the entry the image will be available under 'images.' in the context. + If this field is not defined, image entries will appear under 'images.custom'. + type: string + path: + description: |- + Path is the path to the object containing the image field in a custom resource. + It should be slash-separated. Each slash-separated key must be a valid YAML key or a wildcard '*'. + Wildcard keys are expanded in case of arrays or objects. + type: string + value: + description: |- + Value is an optional name of the field within 'path' that points to the image URI. + This is useful when a custom 'key' is also defined. + type: string + required: + - path + type: object + type: array + description: |- + ImageExtractors defines a mapping from kinds to ImageExtractorConfigs. + This config is only valid for verifyImages rules. + type: object + match: + description: |- + MatchResources defines when this policy rule should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one of + the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + mutate: + description: Mutation is used to modify matching resources. + properties: + foreach: + description: ForEach applies mutation rules to a list + of sub-elements by creating a context for each entry + in the list and looping over it to apply the specified + logic. + items: + description: ForEachMutation applies mutation rules + to a list of sub-elements by creating a context + for each entry in the list and looping over it to + apply the specified logic. + properties: + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + foreach: + description: Foreach declares a nested foreach + iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + order: + description: |- + Order defines the iteration order on the list. + Can be Ascending to iterate from first to last element or Descending to iterate in from last to first element. + enum: + - Ascending + - Descending + type: string + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + targets: + description: Targets defines the target resources to + be mutated. + items: + description: TargetResourceSpec defines targets for + mutating existing resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + type: object + name: + description: Name is a label to identify the rule, It must + be unique within the policy. + maxLength: 63 + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + skipBackgroundRequests: + default: true + description: |- + SkipBackgroundRequests bypasses admission requests that are sent by the background controller. + The default value is set to "true", it must be set to "false" to apply + generate and mutateExisting rules to those requests. + type: boolean + validate: + description: Validation is used to validate matching resources. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + cel: + description: CEL allows validation checks using the + Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/). + properties: + auditAnnotations: + description: AuditAnnotations contains CEL expressions + which are used to produce audit annotations for + the audit event of the API request. + items: + description: AuditAnnotation describes how to + produce an audit annotation for an API request. + properties: + key: + description: |- + key specifies the audit annotation key. The audit annotation keys of + a ValidatingAdmissionPolicy must be unique. The key must be a qualified + name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + + + The key is combined with the resource name of the + ValidatingAdmissionPolicy to construct an audit annotation key: + "{ValidatingAdmissionPolicy name}/{key}". + + + If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy + and the same audit annotation key, the annotation key will be identical. + In this case, the first annotation written with the key will be included + in the audit event and all subsequent annotations with the same key + will be discarded. + + + Required. + type: string + valueExpression: + description: |- + valueExpression represents the expression which is evaluated by CEL to + produce an audit annotation value. The expression must evaluate to either + a string or null value. If the expression evaluates to a string, the + audit annotation is included with the string value. If the expression + evaluates to null or empty string the audit annotation will be omitted. + The valueExpression may be no longer than 5kb in length. + If the result of the valueExpression is more than 10kb in length, it + will be truncated to 10kb. + + + If multiple ValidatingAdmissionPolicyBinding resources match an + API request, then the valueExpression will be evaluated for + each binding. All unique values produced by the valueExpressions + will be joined together in a comma-separated list. + + + Required. + type: string + required: + - key + - valueExpression + type: object + type: array + expressions: + description: Expressions is a list of CELExpression + types. + items: + description: Validation specifies the CEL expression + which is used to apply the validation. + properties: + expression: + description: "Expression represents the expression + which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL + expressions have access to the contents + of the API request/response, organized into + CEL variables as well as some other useful + variables:\n\n\n- 'object' - The object + from the incoming request. The value is + null for DELETE requests.\n- 'oldObject' + - The existing object. The value is null + for CREATE requests.\n- 'request' - Attributes + of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- + 'params' - Parameter resource referred to + by the policy binding being evaluated. Only + populated if the policy has a ParamKind.\n- + 'namespaceObject' - The namespace object + that the incoming object belongs to. The + value is null for cluster-scoped resources.\n- + 'variables' - Map of composited variables, + from its name to its lazily evaluated value.\n + \ For example, a variable named 'foo' can + be accessed as 'variables.foo'.\n- 'authorizer' + - A CEL Authorizer. May be used to perform + authorization checks for the principal (user + or service account) of the request.\n See + https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- + 'authorizer.requestResource' - A CEL ResourceCheck + constructed from the 'authorizer' and configured + with the\n request resource.\n\n\nThe `apiVersion`, + `kind`, `metadata.name` and `metadata.generateName` + are always accessible from the root of the\nobject. + No other metadata properties are accessible.\n\n\nOnly + property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` + are accessible.\nAccessible property names + are escaped according to the following rules + when accessed in the expression:\n- '__' + escapes to '__underscores__'\n- '.' escapes + to '__dot__'\n- '-' escapes to '__dash__'\n- + '/' escapes to '__slash__'\n- Property names + that exactly match a CEL RESERVED keyword + escape to '__{keyword}__'. The keywords + are:\n\t \"true\", \"false\", \"null\", + \"in\", \"as\", \"break\", \"const\", \"continue\", + \"else\", \"for\", \"function\", \"if\",\n\t + \ \"import\", \"let\", \"loop\", \"package\", + \"namespace\", \"return\".\nExamples:\n + \ - Expression accessing a property named + \"namespace\": {\"Expression\": \"object.__namespace__ + > 0\"}\n - Expression accessing a property + named \"x-prop\": {\"Expression\": \"object.x__dash__prop + > 0\"}\n - Expression accessing a property + named \"redact__d\": {\"Expression\": \"object.redact__underscores__d + > 0\"}\n\n\nEquality on arrays with list + type of 'set' or 'map' ignores element order, + i.e. [1, 2] == [2, 1].\nConcatenation on + arrays with x-kubernetes-list-type use the + semantics of the list type:\n - 'set': + `X + Y` performs a union where the array + positions of all elements in `X` are preserved + and\n non-intersecting elements in `Y` + are appended, retaining their partial order.\n + \ - 'map': `X + Y` performs a merge where + the array positions of all keys in `X` are + preserved but the values\n are overwritten + by values in `Y` when the key sets of `X` + and `Y` intersect. Elements in `Y` with\n + \ non-intersecting keys are appended, + retaining their partial order.\nRequired." + type: string + message: + description: |- + Message represents the message displayed when validation fails. The message is required if the Expression contains + line breaks. The message must not contain line breaks. + If unset, the message is "failed rule: {Rule}". + e.g. "must be a URL with the host matching spec.host" + If the Expression contains line breaks. Message is required. + The message must not contain line breaks. + If unset, the message is "failed Expression: {Expression}". + type: string + messageExpression: + description: |- + messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. + Since messageExpression is used as a failure message, it must evaluate to a string. + If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. + If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced + as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string + that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and + the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. + messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. + Example: + "object.x must be less than max ("+string(params.max)+")" + type: string + reason: + description: |- + Reason represents a machine-readable description of why this validation failed. + If this is the first validation in the list to fail, this reason, as well as the + corresponding HTTP response code, are used in the + HTTP response to the client. + The currently supported reasons are: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". + If not set, StatusReasonInvalid is used in the response to the client. + type: string + required: + - expression + type: object + type: array + paramKind: + description: ParamKind is a tuple of Group Kind + and Version. + properties: + apiVersion: + description: |- + APIVersion is the API group version the resources belong to. + In format of "group/version". + Required. + type: string + kind: + description: |- + Kind is the API kind the resources belong to. + Required. + type: string + type: object + x-kubernetes-map-type: atomic + paramRef: + description: ParamRef references a parameter resource. + properties: + name: + description: |- + `name` is the name of the resource being referenced. + + + `name` and `selector` are mutually exclusive properties. If one is set, + the other must be unset. + type: string + namespace: + description: |- + namespace is the namespace of the referenced resource. Allows limiting + the search for params to a specific namespace. Applies to both `name` and + `selector` fields. + + + A per-namespace parameter may be used by specifying a namespace-scoped + `paramKind` in the policy and leaving this field empty. + + + - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this + field results in a configuration error. + + + - If `paramKind` is namespace-scoped, the namespace of the object being + evaluated for admission will be used when this field is left unset. Take + care that if this is left empty the binding must not match any cluster-scoped + resources, which will result in an error. + type: string + parameterNotFoundAction: + description: |- + `parameterNotFoundAction` controls the behavior of the binding when the resource + exists, and name or selector is valid, but there are no parameters + matched by the binding. If the value is set to `Allow`, then no + matched parameters will be treated as successful validation by the binding. + If set to `Deny`, then no matched parameters will be subject to the + `failurePolicy` of the policy. + + + Allowed values are `Allow` or `Deny` + Default to `Deny` + type: string + selector: + description: |- + selector can be used to match multiple param objects based on their labels. + Supply selector: {} to match all resources of the ParamKind. + + + If multiple params are found, they are all evaluated with the policy expressions + and the results are ANDed together. + + + One of `name` or `selector` must be set, but `name` and `selector` are + mutually exclusive properties. If one is set, the other must be unset. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + x-kubernetes-map-type: atomic + variables: + description: |- + Variables contain definitions of variables that can be used in composition of other expressions. + Each variable is defined as a named CEL expression. + The variables defined here will be available under `variables` in other expressions of the policy. + items: + description: Variable is the definition of a variable + that is used for composition. + properties: + expression: + description: |- + Expression is the expression that will be evaluated as the value of the variable. + The CEL expression has access to the same identifiers as the CEL expressions in Validation. + type: string + name: + description: |- + Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. + The variable can be accessed in other expressions through `variables` + For example, if name is "foo", the variable will be available as `variables.foo` + type: string + required: + - expression + - name + type: object + type: array + type: object + deny: + description: Deny defines conditions used to pass or + fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + foreach: + description: ForEach applies validate rules to a list + of sub-elements by creating a context for each entry + in the list and looping over it to apply the specified + logic. + items: + description: ForEachValidation applies validate rules + to a list of sub-elements by creating a context + for each entry in the list and looping over it to + apply the specified logic. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + deny: + description: Deny defines conditions used to pass + or fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + elementScope: + description: |- + ElementScope specifies whether to use the current list element as the scope for validation. Defaults to "true" if not specified. + When set to "false", "request.object" is used as the validation scope within the foreach + block to allow referencing other elements in the subtree. + type: boolean + foreach: + description: Foreach declares a nested foreach + iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + pattern: + description: Pattern specifies an overlay-style + pattern used to check resources. + x-kubernetes-preserve-unknown-fields: true + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + manifests: + description: Manifest specifies conditions for manifest + verification + properties: + annotationDomain: + description: AnnotationDomain is custom domain of + annotation for message and signature. Default + is "cosign.sigstore.dev". + type: string + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more + complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and + sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + dryRun: + description: DryRun configuration + properties: + enable: + type: boolean + namespace: + type: string + type: object + ignoreFields: + description: Fields which will be ignored while + comparing manifests. + items: + properties: + fields: + items: + type: string + type: array + objects: + items: + properties: + group: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + version: + type: string + type: object + type: array + type: object + type: array + repository: + description: |- + Repository is an optional alternate OCI repository to use for resource bundle reference. + The repository can be overridden per Attestor or Attestation. + type: string + type: object + message: + description: Message specifies a custom message to be + displayed on failure. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + podSecurity: + description: |- + PodSecurity applies exemptions for Kubernetes Pod Security admission + by specifying exclusions for Pod Security Standards controls. + properties: + exclude: + description: Exclude specifies the Pod Security + Standard controls to be excluded. + items: + description: PodSecurityStandard specifies the + Pod Security Standard controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values + that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + level: + description: |- + Level defines the Pod Security Standard level to be applied to workloads. + Allowed values are privileged, baseline, and restricted. + enum: + - privileged + - baseline + - restricted + type: string + version: + description: |- + Version defines the Pod Security Standard versions that Kubernetes supports. + Allowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest. + enum: + - v1.19 + - v1.20 + - v1.21 + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - latest + type: string + type: object + type: object + verifyImages: + description: VerifyImages is used to verify image signatures + and mutate them to add a digest + items: + description: |- + ImageVerification validates that images that match the specified pattern + are signed with the supplied public key. Once the image is verified it is + mutated to include the SHA digest retrieved during the registration. + properties: + additionalExtensions: + additionalProperties: + type: string + description: Deprecated. + type: object + annotations: + additionalProperties: + type: string + description: Deprecated. Use annotations per Attestor + instead. + type: object + attestations: + description: |- + Attestations are optional checks for signed in-toto Statements used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statement declarations. + items: + description: |- + Attestation are checks for signed in-toto Statements that are used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statements. + properties: + attestors: + description: Attestors specify the required + attestors (i.e. authorities). + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested + set of Attestor used to specify + a more complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an + optional PEM encoded set of + certificates used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions + used for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the + verified identity used for + keyless signing, for example + the email address. + type: string + type: object + keys: + description: Keys specifies one + or more public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a + Secret resource that contains + a public key + properties: + name: + description: Name of the + secret. The provided secret + must contain a key named + cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature + algorithm for public keys. + Supported values are sha224, + sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + conditions: + description: |- + Conditions are used to verify attributes within a Predicate. If no Conditions are specified + the attestation check is satisfied as long there are predicates that match the predicate type. + items: + description: |- + AnyAllConditions consists of conditions wrapped denoting a logical criteria to be fulfilled. + AnyConditions get fulfilled when at least one of its sub-conditions passes. + AllConditions get fulfilled only when all of its sub-conditions pass. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context + entry (using JMESPath) for conditional + rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context + entry (using JMESPath) for conditional + rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: array + predicateType: + description: Deprecated in favour of 'Type', + to be removed soon + type: string + type: + description: Type defines the type of attestation + contained within the Statement. + type: string + type: object + type: array + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more complex + set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one + or more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + image: + description: Deprecated. Use ImageReferences instead. + type: string + imageReferences: + description: |- + ImageReferences is a list of matching image reference patterns. At least one pattern in the + list must match the image for the rule to apply. Each image reference consists of a registry + address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry. + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + issuer: + description: Deprecated. Use KeylessAttestor instead. + type: string + key: + description: Deprecated. Use StaticKeyAttestor instead. + type: string + mutateDigest: + default: true + description: |- + MutateDigest enables replacement of image tags with digests. + Defaults to true. + type: boolean + repository: + description: |- + Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule. + If specified Repository will override the default OCI image repository configured for the installation. + The repository can also be overridden per Attestor or Attestation. + type: string + required: + default: true + description: Required validates that images are verified + i.e. have matched passed a signature or attestation + check. + type: boolean + roots: + description: Deprecated. Use KeylessAttestor instead. + type: string + skipImageReferences: + description: |- + SkipImageReferences is a list of matching image reference patterns that should be skipped. + At least one pattern in the list must match the image for the rule to be skipped. Each image reference + consists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + subject: + description: Deprecated. Use KeylessAttestor instead. + type: string + type: + description: |- + Type specifies the method of signature validation. The allowed options + are Cosign and Notary. By default Cosign is used if a type is not specified. + enum: + - Cosign + - Notary + type: string + useCache: + default: true + description: UseCache enables caching of image verify + responses for this rule. + type: boolean + verifyDigest: + default: true + description: VerifyDigest validates that images have + a digest. + type: boolean + type: object + type: array + required: + - name + type: object + type: array + type: object + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + ready: + description: Deprecated in favor of Conditions + type: boolean + rulecount: + description: |- + RuleCountStatus contains four variables which describes counts for + validate, generate, mutate and verify images rules + properties: + generate: + description: Count for generate rules in policy + type: integer + mutate: + description: Count for mutate rules in policy + type: integer + validate: + description: Count for validate rules in policy + type: integer + verifyimages: + description: Count for verify image rules in policy + type: integer + required: + - generate + - mutate + - validate + - verifyimages + type: object + validatingadmissionpolicy: + description: ValidatingAdmissionPolicy contains status information + properties: + generated: + description: Generated indicates whether a validating admission + policy is generated from the policy or not + type: boolean + message: + description: |- + Message is a human readable message indicating details about the generation of validating admission policy + It is an empty string when validating admission policy is successfully generated. + type: string + required: + - generated + - message + type: object + required: + - ready + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + status: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_globalcontextentries.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: globalcontextentries.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: GlobalContextEntry + listKind: GlobalContextEntryList + plural: globalcontextentries + shortNames: + - gctxentry + singular: globalcontextentry + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type == "Ready")].status + name: READY + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.apiCall.refreshInterval + name: REFRESH INTERVAL + type: string + - jsonPath: .status.lastRefreshTime + name: LAST REFRESH + type: date + name: v2alpha1 + schema: + openAPIV3Schema: + description: GlobalContextEntry declares resources to be cached. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy exception behaviors. + properties: + apiCall: + description: |- + Stores results from an API call which will be cached. + Mutually exclusive with KubernetesResource. + This can be used to make calls to external (non-Kubernetes API server) services. + It can also be used to make calls to the Kubernetes API server in such cases: + 1. A POST is needed to create a resource. + 2. Finer-grained control is needed. Example: To restrict the number of resources cached. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST data + properties: + key: + description: Key is a unique identifier for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + method: + default: GET + description: Method is the HTTP request type (GET or POST). + enum: + - GET + - POST + type: string + refreshInterval: + default: 10m + description: |- + RefreshInterval defines the interval in duration at which to poll the APICall. + The duration is a sequence of decimal numbers, each with optional fraction and a unit suffix, + such as "300ms", "1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". + format: duration + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + kubernetesResource: + description: |- + Stores a list of Kubernetes resources which will be cached. + Mutually exclusive with APICall. + properties: + group: + description: Group defines the group of the resource. + type: string + namespace: + description: |- + Namespace defines the namespace of the resource. Leave empty for cluster scoped resources. + If left empty for namespaced resources, all resources from all namespaces will be cached. + type: string + resource: + description: |- + Resource defines the type of the resource. + Requires the pluralized form of the resource kind in lowercase. (Ex., "deployments") + type: string + version: + description: Version defines the version of the resource. + type: string + type: object + type: object + status: + description: Status contains globalcontextentry runtime data. + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastRefreshTime: + description: Indicates the time when the globalcontextentry was last + refreshed successfully for the API Call + format: date-time + type: string + ready: + description: Deprecated in favor of Conditions + type: boolean + required: + - ready + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_policies.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: policies.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: Policy + listKind: PolicyList + plural: policies + shortNames: + - pol + singular: policy + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.admission + name: ADMISSION + type: boolean + - jsonPath: .spec.background + name: BACKGROUND + type: boolean + - jsonPath: .spec.validationFailureAction + name: VALIDATE ACTION + type: string + - jsonPath: .status.conditions[?(@.type == "Ready")].status + name: READY + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.failurePolicy + name: FAILURE POLICY + priority: 1 + type: string + - jsonPath: .status.rulecount.validate + name: VALIDATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.mutate + name: MUTATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.generate + name: GENERATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.verifyimages + name: VERIFY IMAGES + priority: 1 + type: integer + - jsonPath: .status.conditions[?(@.type == "Ready")].message + name: MESSAGE + type: string + name: v1 + schema: + openAPIV3Schema: + description: |- + Policy declares validation, mutation, and generation behaviors for matching resources. + See: https://kyverno.io/docs/writing-policies/ for more information. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec defines policy behaviors and contains one or more rules. + properties: + admission: + default: true + description: |- + Admission controls if rules are applied during admission. + Optional. Default value is "true". + type: boolean + applyRules: + description: |- + ApplyRules controls how rules in a policy are applied. Rule are processed in + the order of declaration. When set to `One` processing stops after a rule has + been applied i.e. the rule matches and results in a pass, fail, or error. When + set to `All` all rules in the policy are processed. The default is `All`. + enum: + - All + - One + type: string + background: + default: true + description: |- + Background controls if rules are applied to existing resources during a background scan. + Optional. Default value is "true". The value must be set to "false" if the policy rule + uses variables that are only available in the admission review request (e.g. user name). + type: boolean + failurePolicy: + description: |- + FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled. + Rules within the same policy share the same failure behavior. + This field should not be accessed directly, instead `GetFailurePolicy()` should be used. + Allowed values are Ignore or Fail. Defaults to Fail. + enum: + - Ignore + - Fail + type: string + generateExisting: + description: |- + GenerateExisting controls whether to trigger generate rule in existing resources + If is set to "true" generate rule will be triggered and applied to existing matched resources. + Defaults to "false" if not specified. + type: boolean + generateExistingOnPolicyUpdate: + description: Deprecated, use generateExisting instead + type: boolean + mutateExistingOnPolicyUpdate: + description: |- + MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events. + Default value is "false". + type: boolean + rules: + description: |- + Rules is a list of Rule instances. A Policy contains multiple rules and + each rule can validate, mutate, or generate resources. + items: + description: |- + Rule defines a validation, mutation, or generation control for matching resources. + Each rules contains a match declaration to select resources, and an optional exclude + declaration to specify which resources to exclude. + properties: + celPreconditions: + description: |- + CELPreconditions are used to determine if a policy rule should be applied by evaluating a + set of CEL conditions. It can only be used with the validate.cel subrule + items: + description: MatchCondition represents a condition which must + by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + context: + description: Context defines variables and data sources that + can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST + data + properties: + key: + description: Key is a unique identifier for + the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET + or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference + to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when this policy rule should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + generate: + description: Generation is used to create new resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + clone: + description: |- + Clone specifies the source resource used to populate each generated resource. + At most one of Data or Clone can be specified. If neither are provided, the generated + resource will be created with default data only. + properties: + name: + description: Name specifies name of the resource. + type: string + namespace: + description: Namespace specifies source resource namespace. + type: string + type: object + cloneList: + description: CloneList specifies the list of source resource + used to populate each generated resource. + properties: + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + namespace: + description: Namespace specifies source resource namespace. + type: string + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels`. + wildcard characters are not supported. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + data: + description: |- + Data provides the resource declaration used to populate each generated resource. + At most one of Data or Clone must be specified. If neither are provided, the generated + resource will be created with default data only. + x-kubernetes-preserve-unknown-fields: true + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + orphanDownstreamOnPolicyDelete: + description: |- + OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated + them is deleted with synchronization enabled. This option is only applicable to generate rules of the data type. + See https://kyverno.io/docs/writing-policies/generate/#data-examples. + Defaults to "false" if not specified. + type: boolean + synchronize: + description: |- + Synchronize controls if generated resources should be kept in-sync with their source resource. + If Synchronize is set to "true" changes to generated resources will be overwritten with resource + data from Data or the resource specified in the Clone declaration. + Optional. Defaults to "false" if not specified. + type: boolean + uid: + description: UID specifies the resource uid. + type: string + type: object + imageExtractors: + additionalProperties: + items: + properties: + jmesPath: + description: |- + JMESPath is an optional JMESPath expression to apply to the image value. + This is useful when the extracted image begins with a prefix like 'docker://'. + The 'trim_prefix' function may be used to trim the prefix: trim_prefix(@, 'docker://'). + Note - Image digest mutation may not be used when applying a JMESPAth to an image. + type: string + key: + description: |- + Key is an optional name of the field within 'path' that will be used to uniquely identify an image. + Note - this field MUST be unique. + type: string + name: + description: |- + Name is the entry the image will be available under 'images.' in the context. + If this field is not defined, image entries will appear under 'images.custom'. + type: string + path: + description: |- + Path is the path to the object containing the image field in a custom resource. + It should be slash-separated. Each slash-separated key must be a valid YAML key or a wildcard '*'. + Wildcard keys are expanded in case of arrays or objects. + type: string + value: + description: |- + Value is an optional name of the field within 'path' that points to the image URI. + This is useful when a custom 'key' is also defined. + type: string + required: + - path + type: object + type: array + description: |- + ImageExtractors defines a mapping from kinds to ImageExtractorConfigs. + This config is only valid for verifyImages rules. + type: object + match: + description: |- + MatchResources defines when this policy rule should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + mutate: + description: Mutation is used to modify matching resources. + properties: + foreach: + description: ForEach applies mutation rules to a list of + sub-elements by creating a context for each entry in the + list and looping over it to apply the specified logic. + items: + description: ForEachMutation applies mutation rules to + a list of sub-elements by creating a context for each + entry in the list and looping over it to apply the specified + logic. + properties: + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + foreach: + description: Foreach declares a nested foreach iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + order: + description: |- + Order defines the iteration order on the list. + Can be Ascending to iterate from first to last element or Descending to iterate in from last to first element. + enum: + - Ascending + - Descending + type: string + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + targets: + description: Targets defines the target resources to be + mutated. + items: + description: TargetResourceSpec defines targets for mutating + existing resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + type: object + name: + description: Name is a label to identify the rule, It must be + unique within the policy. + maxLength: 63 + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + skipBackgroundRequests: + default: true + description: |- + SkipBackgroundRequests bypasses admission requests that are sent by the background controller. + The default value is set to "true", it must be set to "false" to apply + generate and mutateExisting rules to those requests. + type: boolean + validate: + description: Validation is used to validate matching resources. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + cel: + description: CEL allows validation checks using the Common + Expression Language (https://kubernetes.io/docs/reference/using-api/cel/). + properties: + auditAnnotations: + description: AuditAnnotations contains CEL expressions + which are used to produce audit annotations for the + audit event of the API request. + items: + description: AuditAnnotation describes how to produce + an audit annotation for an API request. + properties: + key: + description: |- + key specifies the audit annotation key. The audit annotation keys of + a ValidatingAdmissionPolicy must be unique. The key must be a qualified + name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + + + The key is combined with the resource name of the + ValidatingAdmissionPolicy to construct an audit annotation key: + "{ValidatingAdmissionPolicy name}/{key}". + + + If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy + and the same audit annotation key, the annotation key will be identical. + In this case, the first annotation written with the key will be included + in the audit event and all subsequent annotations with the same key + will be discarded. + + + Required. + type: string + valueExpression: + description: |- + valueExpression represents the expression which is evaluated by CEL to + produce an audit annotation value. The expression must evaluate to either + a string or null value. If the expression evaluates to a string, the + audit annotation is included with the string value. If the expression + evaluates to null or empty string the audit annotation will be omitted. + The valueExpression may be no longer than 5kb in length. + If the result of the valueExpression is more than 10kb in length, it + will be truncated to 10kb. + + + If multiple ValidatingAdmissionPolicyBinding resources match an + API request, then the valueExpression will be evaluated for + each binding. All unique values produced by the valueExpressions + will be joined together in a comma-separated list. + + + Required. + type: string + required: + - key + - valueExpression + type: object + type: array + expressions: + description: Expressions is a list of CELExpression + types. + items: + description: Validation specifies the CEL expression + which is used to apply the validation. + properties: + expression: + description: "Expression represents the expression + which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL + expressions have access to the contents of the + API request/response, organized into CEL variables + as well as some other useful variables:\n\n\n- + 'object' - The object from the incoming request. + The value is null for DELETE requests.\n- 'oldObject' + - The existing object. The value is null for + CREATE requests.\n- 'request' - Attributes of + the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- + 'params' - Parameter resource referred to by + the policy binding being evaluated. Only populated + if the policy has a ParamKind.\n- 'namespaceObject' + - The namespace object that the incoming object + belongs to. The value is null for cluster-scoped + resources.\n- 'variables' - Map of composited + variables, from its name to its lazily evaluated + value.\n For example, a variable named 'foo' + can be accessed as 'variables.foo'.\n- 'authorizer' + - A CEL Authorizer. May be used to perform authorization + checks for the principal (user or service account) + of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- + 'authorizer.requestResource' - A CEL ResourceCheck + constructed from the 'authorizer' and configured + with the\n request resource.\n\n\nThe `apiVersion`, + `kind`, `metadata.name` and `metadata.generateName` + are always accessible from the root of the\nobject. + No other metadata properties are accessible.\n\n\nOnly + property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` + are accessible.\nAccessible property names are + escaped according to the following rules when + accessed in the expression:\n- '__' escapes + to '__underscores__'\n- '.' escapes to '__dot__'\n- + '-' escapes to '__dash__'\n- '/' escapes to + '__slash__'\n- Property names that exactly match + a CEL RESERVED keyword escape to '__{keyword}__'. + The keywords are:\n\t \"true\", \"false\", + \"null\", \"in\", \"as\", \"break\", \"const\", + \"continue\", \"else\", \"for\", \"function\", + \"if\",\n\t \"import\", \"let\", \"loop\", + \"package\", \"namespace\", \"return\".\nExamples:\n + \ - Expression accessing a property named \"namespace\": + {\"Expression\": \"object.__namespace__ > 0\"}\n + \ - Expression accessing a property named \"x-prop\": + {\"Expression\": \"object.x__dash__prop > 0\"}\n + \ - Expression accessing a property named \"redact__d\": + {\"Expression\": \"object.redact__underscores__d + > 0\"}\n\n\nEquality on arrays with list type + of 'set' or 'map' ignores element order, i.e. + [1, 2] == [2, 1].\nConcatenation on arrays with + x-kubernetes-list-type use the semantics of + the list type:\n - 'set': `X + Y` performs + a union where the array positions of all elements + in `X` are preserved and\n non-intersecting + elements in `Y` are appended, retaining their + partial order.\n - 'map': `X + Y` performs + a merge where the array positions of all keys + in `X` are preserved but the values\n are + overwritten by values in `Y` when the key sets + of `X` and `Y` intersect. Elements in `Y` with\n + \ non-intersecting keys are appended, retaining + their partial order.\nRequired." + type: string + message: + description: |- + Message represents the message displayed when validation fails. The message is required if the Expression contains + line breaks. The message must not contain line breaks. + If unset, the message is "failed rule: {Rule}". + e.g. "must be a URL with the host matching spec.host" + If the Expression contains line breaks. Message is required. + The message must not contain line breaks. + If unset, the message is "failed Expression: {Expression}". + type: string + messageExpression: + description: |- + messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. + Since messageExpression is used as a failure message, it must evaluate to a string. + If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. + If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced + as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string + that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and + the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. + messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. + Example: + "object.x must be less than max ("+string(params.max)+")" + type: string + reason: + description: |- + Reason represents a machine-readable description of why this validation failed. + If this is the first validation in the list to fail, this reason, as well as the + corresponding HTTP response code, are used in the + HTTP response to the client. + The currently supported reasons are: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". + If not set, StatusReasonInvalid is used in the response to the client. + type: string + required: + - expression + type: object + type: array + paramKind: + description: ParamKind is a tuple of Group Kind and + Version. + properties: + apiVersion: + description: |- + APIVersion is the API group version the resources belong to. + In format of "group/version". + Required. + type: string + kind: + description: |- + Kind is the API kind the resources belong to. + Required. + type: string + type: object + x-kubernetes-map-type: atomic + paramRef: + description: ParamRef references a parameter resource. + properties: + name: + description: |- + `name` is the name of the resource being referenced. + + + `name` and `selector` are mutually exclusive properties. If one is set, + the other must be unset. + type: string + namespace: + description: |- + namespace is the namespace of the referenced resource. Allows limiting + the search for params to a specific namespace. Applies to both `name` and + `selector` fields. + + + A per-namespace parameter may be used by specifying a namespace-scoped + `paramKind` in the policy and leaving this field empty. + + + - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this + field results in a configuration error. + + + - If `paramKind` is namespace-scoped, the namespace of the object being + evaluated for admission will be used when this field is left unset. Take + care that if this is left empty the binding must not match any cluster-scoped + resources, which will result in an error. + type: string + parameterNotFoundAction: + description: |- + `parameterNotFoundAction` controls the behavior of the binding when the resource + exists, and name or selector is valid, but there are no parameters + matched by the binding. If the value is set to `Allow`, then no + matched parameters will be treated as successful validation by the binding. + If set to `Deny`, then no matched parameters will be subject to the + `failurePolicy` of the policy. + + + Allowed values are `Allow` or `Deny` + Default to `Deny` + type: string + selector: + description: |- + selector can be used to match multiple param objects based on their labels. + Supply selector: {} to match all resources of the ParamKind. + + + If multiple params are found, they are all evaluated with the policy expressions + and the results are ANDed together. + + + One of `name` or `selector` must be set, but `name` and `selector` are + mutually exclusive properties. If one is set, the other must be unset. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + x-kubernetes-map-type: atomic + variables: + description: |- + Variables contain definitions of variables that can be used in composition of other expressions. + Each variable is defined as a named CEL expression. + The variables defined here will be available under `variables` in other expressions of the policy. + items: + description: Variable is the definition of a variable + that is used for composition. + properties: + expression: + description: |- + Expression is the expression that will be evaluated as the value of the variable. + The CEL expression has access to the same identifiers as the CEL expressions in Validation. + type: string + name: + description: |- + Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. + The variable can be accessed in other expressions through `variables` + For example, if name is "foo", the variable will be available as `variables.foo` + type: string + required: + - expression + - name + type: object + type: array + type: object + deny: + description: Deny defines conditions used to pass or fail + a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + foreach: + description: ForEach applies validate rules to a list of + sub-elements by creating a context for each entry in the + list and looping over it to apply the specified logic. + items: + description: ForEachValidation applies validate rules + to a list of sub-elements by creating a context for + each entry in the list and looping over it to apply + the specified logic. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + deny: + description: Deny defines conditions used to pass + or fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + elementScope: + description: |- + ElementScope specifies whether to use the current list element as the scope for validation. Defaults to "true" if not specified. + When set to "false", "request.object" is used as the validation scope within the foreach + block to allow referencing other elements in the subtree. + type: boolean + foreach: + description: Foreach declares a nested foreach iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + manifests: + description: Manifest specifies conditions for manifest + verification + properties: + annotationDomain: + description: AnnotationDomain is custom domain of annotation + for message and signature. Default is "cosign.sigstore.dev". + type: string + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set of + Attestor used to specify a more complex + set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one + or more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates used + to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions are + certificate-extensions used for keyless + signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret resource + that contains a public key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + dryRun: + description: DryRun configuration + properties: + enable: + type: boolean + namespace: + type: string + type: object + ignoreFields: + description: Fields which will be ignored while comparing + manifests. + items: + properties: + fields: + items: + type: string + type: array + objects: + items: + properties: + group: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + version: + type: string + type: object + type: array + type: object + type: array + repository: + description: |- + Repository is an optional alternate OCI repository to use for resource bundle reference. + The repository can be overridden per Attestor or Attestation. + type: string + type: object + message: + description: Message specifies a custom message to be displayed + on failure. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + podSecurity: + description: |- + PodSecurity applies exemptions for Kubernetes Pod Security admission + by specifying exclusions for Pod Security Standards controls. + properties: + exclude: + description: Exclude specifies the Pod Security Standard + controls to be excluded. + items: + description: PodSecurityStandard specifies the Pod + Security Standard controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values + that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + level: + description: |- + Level defines the Pod Security Standard level to be applied to workloads. + Allowed values are privileged, baseline, and restricted. + enum: + - privileged + - baseline + - restricted + type: string + version: + description: |- + Version defines the Pod Security Standard versions that Kubernetes supports. + Allowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest. + enum: + - v1.19 + - v1.20 + - v1.21 + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - latest + type: string + type: object + type: object + verifyImages: + description: VerifyImages is used to verify image signatures + and mutate them to add a digest + items: + description: |- + ImageVerification validates that images that match the specified pattern + are signed with the supplied public key. Once the image is verified it is + mutated to include the SHA digest retrieved during the registration. + properties: + additionalExtensions: + additionalProperties: + type: string + description: Deprecated. + type: object + annotations: + additionalProperties: + type: string + description: Deprecated. Use annotations per Attestor + instead. + type: object + attestations: + description: |- + Attestations are optional checks for signed in-toto Statements used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statement declarations. + items: + description: |- + Attestation are checks for signed in-toto Statements that are used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statements. + properties: + attestors: + description: Attestors specify the required attestors + (i.e. authorities). + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more + complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and + sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + conditions: + description: |- + Conditions are used to verify attributes within a Predicate. If no Conditions are specified + the attestation check is satisfied as long there are predicates that match the predicate type. + items: + description: |- + AnyAllConditions consists of conditions wrapped denoting a logical criteria to be fulfilled. + AnyConditions get fulfilled when at least one of its sub-conditions passes. + AllConditions get fulfilled only when all of its sub-conditions pass. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: array + predicateType: + description: Deprecated in favour of 'Type', to + be removed soon + type: string + type: + description: Type defines the type of attestation + contained within the Statement. + type: string + type: object + type: array + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set of Attestor + used to specify a more complex set of match + authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one or + more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates used + to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions are + certificate-extensions used for keyless + signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified identity + used for keyless signing, for example + the email address. + type: string + type: object + keys: + description: Keys specifies one or more public + keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret resource + that contains a public key + properties: + name: + description: Name of the secret. The + provided secret must contain a key + named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values are + sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + image: + description: Deprecated. Use ImageReferences instead. + type: string + imageReferences: + description: |- + ImageReferences is a list of matching image reference patterns. At least one pattern in the + list must match the image for the rule to apply. Each image reference consists of a registry + address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry. + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + issuer: + description: Deprecated. Use KeylessAttestor instead. + type: string + key: + description: Deprecated. Use StaticKeyAttestor instead. + type: string + mutateDigest: + default: true + description: |- + MutateDigest enables replacement of image tags with digests. + Defaults to true. + type: boolean + repository: + description: |- + Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule. + If specified Repository will override the default OCI image repository configured for the installation. + The repository can also be overridden per Attestor or Attestation. + type: string + required: + default: true + description: Required validates that images are verified + i.e. have matched passed a signature or attestation + check. + type: boolean + roots: + description: Deprecated. Use KeylessAttestor instead. + type: string + skipImageReferences: + description: |- + SkipImageReferences is a list of matching image reference patterns that should be skipped. + At least one pattern in the list must match the image for the rule to be skipped. Each image reference + consists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + subject: + description: Deprecated. Use KeylessAttestor instead. + type: string + type: + description: |- + Type specifies the method of signature validation. The allowed options + are Cosign and Notary. By default Cosign is used if a type is not specified. + enum: + - Cosign + - Notary + type: string + useCache: + default: true + description: UseCache enables caching of image verify + responses for this rule. + type: boolean + verifyDigest: + default: true + description: VerifyDigest validates that images have a + digest. + type: boolean + type: object + type: array + required: + - name + type: object + type: array + schemaValidation: + description: Deprecated. + type: boolean + useServerSideApply: + description: |- + UseServerSideApply controls whether to use server-side apply for generate rules + If is set to "true" create & update for generate rules will use apply instead of create/update. + Defaults to "false" if not specified. + type: boolean + validationFailureAction: + default: Audit + description: |- + ValidationFailureAction defines if a validation policy rule violation should block + the admission review request (enforce), or allow (audit) the admission review request + and report an error in a policy report. Optional. + Allowed values are audit or enforce. The default value is "Audit". + enum: + - audit + - enforce + - Audit + - Enforce + type: string + validationFailureActionOverrides: + description: |- + ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction + namespace-wise. It overrides ValidationFailureAction for the specified namespaces. + items: + properties: + action: + description: ValidationFailureAction defines the policy validation + failure action + enum: + - audit + - enforce + - Audit + - Enforce + type: string + namespaceSelector: + description: |- + A label selector is a label query over a set of resources. The result of matchLabels and + matchExpressions are ANDed. An empty label selector matches all objects. A null + label selector matches no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + type: object + type: array + webhookConfiguration: + description: |- + WebhookConfiguration specifies the custom configuration for Kubernetes admission webhookconfiguration. + Requires Kubernetes 1.27 or later. + properties: + matchConditions: + description: MatchCondition configures admission webhook matchConditions. + items: + description: MatchCondition represents a condition which must + by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + type: object + webhookTimeoutSeconds: + description: |- + WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy. + After the configured time expires, the admission request may fail, or may simply ignore the policy results, + based on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds. + format: int32 + type: integer + type: object + status: + description: Deprecated. Policy metrics are available via the metrics + endpoint + properties: + autogen: + description: AutogenStatus contains autogen status information. + properties: + rules: + description: Rules is a list of Rule instances. It contains auto + generated rules added for pod controllers + items: + description: |- + Rule defines a validation, mutation, or generation control for matching resources. + Each rules contains a match declaration to select resources, and an optional exclude + declaration to specify which resources to exclude. + properties: + celPreconditions: + description: |- + CELPreconditions are used to determine if a policy rule should be applied by evaluating a + set of CEL conditions. It can only be used with the validate.cel subrule + items: + description: MatchCondition represents a condition which + must by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST + data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET + or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference + to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object + representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when this policy rule should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one of + the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + generate: + description: Generation is used to create new resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + clone: + description: |- + Clone specifies the source resource used to populate each generated resource. + At most one of Data or Clone can be specified. If neither are provided, the generated + resource will be created with default data only. + properties: + name: + description: Name specifies name of the resource. + type: string + namespace: + description: Namespace specifies source resource + namespace. + type: string + type: object + cloneList: + description: CloneList specifies the list of source + resource used to populate each generated resource. + properties: + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + namespace: + description: Namespace specifies source resource + namespace. + type: string + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels`. + wildcard characters are not supported. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + data: + description: |- + Data provides the resource declaration used to populate each generated resource. + At most one of Data or Clone must be specified. If neither are provided, the generated + resource will be created with default data only. + x-kubernetes-preserve-unknown-fields: true + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + orphanDownstreamOnPolicyDelete: + description: |- + OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated + them is deleted with synchronization enabled. This option is only applicable to generate rules of the data type. + See https://kyverno.io/docs/writing-policies/generate/#data-examples. + Defaults to "false" if not specified. + type: boolean + synchronize: + description: |- + Synchronize controls if generated resources should be kept in-sync with their source resource. + If Synchronize is set to "true" changes to generated resources will be overwritten with resource + data from Data or the resource specified in the Clone declaration. + Optional. Defaults to "false" if not specified. + type: boolean + uid: + description: UID specifies the resource uid. + type: string + type: object + imageExtractors: + additionalProperties: + items: + properties: + jmesPath: + description: |- + JMESPath is an optional JMESPath expression to apply to the image value. + This is useful when the extracted image begins with a prefix like 'docker://'. + The 'trim_prefix' function may be used to trim the prefix: trim_prefix(@, 'docker://'). + Note - Image digest mutation may not be used when applying a JMESPAth to an image. + type: string + key: + description: |- + Key is an optional name of the field within 'path' that will be used to uniquely identify an image. + Note - this field MUST be unique. + type: string + name: + description: |- + Name is the entry the image will be available under 'images.' in the context. + If this field is not defined, image entries will appear under 'images.custom'. + type: string + path: + description: |- + Path is the path to the object containing the image field in a custom resource. + It should be slash-separated. Each slash-separated key must be a valid YAML key or a wildcard '*'. + Wildcard keys are expanded in case of arrays or objects. + type: string + value: + description: |- + Value is an optional name of the field within 'path' that points to the image URI. + This is useful when a custom 'key' is also defined. + type: string + required: + - path + type: object + type: array + description: |- + ImageExtractors defines a mapping from kinds to ImageExtractorConfigs. + This config is only valid for verifyImages rules. + type: object + match: + description: |- + MatchResources defines when this policy rule should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one of + the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + mutate: + description: Mutation is used to modify matching resources. + properties: + foreach: + description: ForEach applies mutation rules to a list + of sub-elements by creating a context for each entry + in the list and looping over it to apply the specified + logic. + items: + description: ForEachMutation applies mutation rules + to a list of sub-elements by creating a context + for each entry in the list and looping over it to + apply the specified logic. + properties: + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + foreach: + description: Foreach declares a nested foreach + iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + order: + description: |- + Order defines the iteration order on the list. + Can be Ascending to iterate from first to last element or Descending to iterate in from last to first element. + enum: + - Ascending + - Descending + type: string + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + targets: + description: Targets defines the target resources to + be mutated. + items: + description: TargetResourceSpec defines targets for + mutating existing resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + type: object + name: + description: Name is a label to identify the rule, It must + be unique within the policy. + maxLength: 63 + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + skipBackgroundRequests: + default: true + description: |- + SkipBackgroundRequests bypasses admission requests that are sent by the background controller. + The default value is set to "true", it must be set to "false" to apply + generate and mutateExisting rules to those requests. + type: boolean + validate: + description: Validation is used to validate matching resources. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + cel: + description: CEL allows validation checks using the + Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/). + properties: + auditAnnotations: + description: AuditAnnotations contains CEL expressions + which are used to produce audit annotations for + the audit event of the API request. + items: + description: AuditAnnotation describes how to + produce an audit annotation for an API request. + properties: + key: + description: |- + key specifies the audit annotation key. The audit annotation keys of + a ValidatingAdmissionPolicy must be unique. The key must be a qualified + name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + + + The key is combined with the resource name of the + ValidatingAdmissionPolicy to construct an audit annotation key: + "{ValidatingAdmissionPolicy name}/{key}". + + + If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy + and the same audit annotation key, the annotation key will be identical. + In this case, the first annotation written with the key will be included + in the audit event and all subsequent annotations with the same key + will be discarded. + + + Required. + type: string + valueExpression: + description: |- + valueExpression represents the expression which is evaluated by CEL to + produce an audit annotation value. The expression must evaluate to either + a string or null value. If the expression evaluates to a string, the + audit annotation is included with the string value. If the expression + evaluates to null or empty string the audit annotation will be omitted. + The valueExpression may be no longer than 5kb in length. + If the result of the valueExpression is more than 10kb in length, it + will be truncated to 10kb. + + + If multiple ValidatingAdmissionPolicyBinding resources match an + API request, then the valueExpression will be evaluated for + each binding. All unique values produced by the valueExpressions + will be joined together in a comma-separated list. + + + Required. + type: string + required: + - key + - valueExpression + type: object + type: array + expressions: + description: Expressions is a list of CELExpression + types. + items: + description: Validation specifies the CEL expression + which is used to apply the validation. + properties: + expression: + description: "Expression represents the expression + which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL + expressions have access to the contents + of the API request/response, organized into + CEL variables as well as some other useful + variables:\n\n\n- 'object' - The object + from the incoming request. The value is + null for DELETE requests.\n- 'oldObject' + - The existing object. The value is null + for CREATE requests.\n- 'request' - Attributes + of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- + 'params' - Parameter resource referred to + by the policy binding being evaluated. Only + populated if the policy has a ParamKind.\n- + 'namespaceObject' - The namespace object + that the incoming object belongs to. The + value is null for cluster-scoped resources.\n- + 'variables' - Map of composited variables, + from its name to its lazily evaluated value.\n + \ For example, a variable named 'foo' can + be accessed as 'variables.foo'.\n- 'authorizer' + - A CEL Authorizer. May be used to perform + authorization checks for the principal (user + or service account) of the request.\n See + https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- + 'authorizer.requestResource' - A CEL ResourceCheck + constructed from the 'authorizer' and configured + with the\n request resource.\n\n\nThe `apiVersion`, + `kind`, `metadata.name` and `metadata.generateName` + are always accessible from the root of the\nobject. + No other metadata properties are accessible.\n\n\nOnly + property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` + are accessible.\nAccessible property names + are escaped according to the following rules + when accessed in the expression:\n- '__' + escapes to '__underscores__'\n- '.' escapes + to '__dot__'\n- '-' escapes to '__dash__'\n- + '/' escapes to '__slash__'\n- Property names + that exactly match a CEL RESERVED keyword + escape to '__{keyword}__'. The keywords + are:\n\t \"true\", \"false\", \"null\", + \"in\", \"as\", \"break\", \"const\", \"continue\", + \"else\", \"for\", \"function\", \"if\",\n\t + \ \"import\", \"let\", \"loop\", \"package\", + \"namespace\", \"return\".\nExamples:\n + \ - Expression accessing a property named + \"namespace\": {\"Expression\": \"object.__namespace__ + > 0\"}\n - Expression accessing a property + named \"x-prop\": {\"Expression\": \"object.x__dash__prop + > 0\"}\n - Expression accessing a property + named \"redact__d\": {\"Expression\": \"object.redact__underscores__d + > 0\"}\n\n\nEquality on arrays with list + type of 'set' or 'map' ignores element order, + i.e. [1, 2] == [2, 1].\nConcatenation on + arrays with x-kubernetes-list-type use the + semantics of the list type:\n - 'set': + `X + Y` performs a union where the array + positions of all elements in `X` are preserved + and\n non-intersecting elements in `Y` + are appended, retaining their partial order.\n + \ - 'map': `X + Y` performs a merge where + the array positions of all keys in `X` are + preserved but the values\n are overwritten + by values in `Y` when the key sets of `X` + and `Y` intersect. Elements in `Y` with\n + \ non-intersecting keys are appended, + retaining their partial order.\nRequired." + type: string + message: + description: |- + Message represents the message displayed when validation fails. The message is required if the Expression contains + line breaks. The message must not contain line breaks. + If unset, the message is "failed rule: {Rule}". + e.g. "must be a URL with the host matching spec.host" + If the Expression contains line breaks. Message is required. + The message must not contain line breaks. + If unset, the message is "failed Expression: {Expression}". + type: string + messageExpression: + description: |- + messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. + Since messageExpression is used as a failure message, it must evaluate to a string. + If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. + If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced + as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string + that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and + the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. + messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. + Example: + "object.x must be less than max ("+string(params.max)+")" + type: string + reason: + description: |- + Reason represents a machine-readable description of why this validation failed. + If this is the first validation in the list to fail, this reason, as well as the + corresponding HTTP response code, are used in the + HTTP response to the client. + The currently supported reasons are: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". + If not set, StatusReasonInvalid is used in the response to the client. + type: string + required: + - expression + type: object + type: array + paramKind: + description: ParamKind is a tuple of Group Kind + and Version. + properties: + apiVersion: + description: |- + APIVersion is the API group version the resources belong to. + In format of "group/version". + Required. + type: string + kind: + description: |- + Kind is the API kind the resources belong to. + Required. + type: string + type: object + x-kubernetes-map-type: atomic + paramRef: + description: ParamRef references a parameter resource. + properties: + name: + description: |- + `name` is the name of the resource being referenced. + + + `name` and `selector` are mutually exclusive properties. If one is set, + the other must be unset. + type: string + namespace: + description: |- + namespace is the namespace of the referenced resource. Allows limiting + the search for params to a specific namespace. Applies to both `name` and + `selector` fields. + + + A per-namespace parameter may be used by specifying a namespace-scoped + `paramKind` in the policy and leaving this field empty. + + + - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this + field results in a configuration error. + + + - If `paramKind` is namespace-scoped, the namespace of the object being + evaluated for admission will be used when this field is left unset. Take + care that if this is left empty the binding must not match any cluster-scoped + resources, which will result in an error. + type: string + parameterNotFoundAction: + description: |- + `parameterNotFoundAction` controls the behavior of the binding when the resource + exists, and name or selector is valid, but there are no parameters + matched by the binding. If the value is set to `Allow`, then no + matched parameters will be treated as successful validation by the binding. + If set to `Deny`, then no matched parameters will be subject to the + `failurePolicy` of the policy. + + + Allowed values are `Allow` or `Deny` + Default to `Deny` + type: string + selector: + description: |- + selector can be used to match multiple param objects based on their labels. + Supply selector: {} to match all resources of the ParamKind. + + + If multiple params are found, they are all evaluated with the policy expressions + and the results are ANDed together. + + + One of `name` or `selector` must be set, but `name` and `selector` are + mutually exclusive properties. If one is set, the other must be unset. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + x-kubernetes-map-type: atomic + variables: + description: |- + Variables contain definitions of variables that can be used in composition of other expressions. + Each variable is defined as a named CEL expression. + The variables defined here will be available under `variables` in other expressions of the policy. + items: + description: Variable is the definition of a variable + that is used for composition. + properties: + expression: + description: |- + Expression is the expression that will be evaluated as the value of the variable. + The CEL expression has access to the same identifiers as the CEL expressions in Validation. + type: string + name: + description: |- + Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. + The variable can be accessed in other expressions through `variables` + For example, if name is "foo", the variable will be available as `variables.foo` + type: string + required: + - expression + - name + type: object + type: array + type: object + deny: + description: Deny defines conditions used to pass or + fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + foreach: + description: ForEach applies validate rules to a list + of sub-elements by creating a context for each entry + in the list and looping over it to apply the specified + logic. + items: + description: ForEachValidation applies validate rules + to a list of sub-elements by creating a context + for each entry in the list and looping over it to + apply the specified logic. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + deny: + description: Deny defines conditions used to pass + or fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + elementScope: + description: |- + ElementScope specifies whether to use the current list element as the scope for validation. Defaults to "true" if not specified. + When set to "false", "request.object" is used as the validation scope within the foreach + block to allow referencing other elements in the subtree. + type: boolean + foreach: + description: Foreach declares a nested foreach + iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + pattern: + description: Pattern specifies an overlay-style + pattern used to check resources. + x-kubernetes-preserve-unknown-fields: true + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + manifests: + description: Manifest specifies conditions for manifest + verification + properties: + annotationDomain: + description: AnnotationDomain is custom domain of + annotation for message and signature. Default + is "cosign.sigstore.dev". + type: string + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more + complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and + sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + dryRun: + description: DryRun configuration + properties: + enable: + type: boolean + namespace: + type: string + type: object + ignoreFields: + description: Fields which will be ignored while + comparing manifests. + items: + properties: + fields: + items: + type: string + type: array + objects: + items: + properties: + group: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + version: + type: string + type: object + type: array + type: object + type: array + repository: + description: |- + Repository is an optional alternate OCI repository to use for resource bundle reference. + The repository can be overridden per Attestor or Attestation. + type: string + type: object + message: + description: Message specifies a custom message to be + displayed on failure. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + podSecurity: + description: |- + PodSecurity applies exemptions for Kubernetes Pod Security admission + by specifying exclusions for Pod Security Standards controls. + properties: + exclude: + description: Exclude specifies the Pod Security + Standard controls to be excluded. + items: + description: PodSecurityStandard specifies the + Pod Security Standard controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values + that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + level: + description: |- + Level defines the Pod Security Standard level to be applied to workloads. + Allowed values are privileged, baseline, and restricted. + enum: + - privileged + - baseline + - restricted + type: string + version: + description: |- + Version defines the Pod Security Standard versions that Kubernetes supports. + Allowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest. + enum: + - v1.19 + - v1.20 + - v1.21 + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - latest + type: string + type: object + type: object + verifyImages: + description: VerifyImages is used to verify image signatures + and mutate them to add a digest + items: + description: |- + ImageVerification validates that images that match the specified pattern + are signed with the supplied public key. Once the image is verified it is + mutated to include the SHA digest retrieved during the registration. + properties: + additionalExtensions: + additionalProperties: + type: string + description: Deprecated. + type: object + annotations: + additionalProperties: + type: string + description: Deprecated. Use annotations per Attestor + instead. + type: object + attestations: + description: |- + Attestations are optional checks for signed in-toto Statements used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statement declarations. + items: + description: |- + Attestation are checks for signed in-toto Statements that are used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statements. + properties: + attestors: + description: Attestors specify the required + attestors (i.e. authorities). + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested + set of Attestor used to specify + a more complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an + optional PEM encoded set of + certificates used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions + used for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the + verified identity used for + keyless signing, for example + the email address. + type: string + type: object + keys: + description: Keys specifies one + or more public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a + Secret resource that contains + a public key + properties: + name: + description: Name of the + secret. The provided secret + must contain a key named + cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature + algorithm for public keys. + Supported values are sha224, + sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + conditions: + description: |- + Conditions are used to verify attributes within a Predicate. If no Conditions are specified + the attestation check is satisfied as long there are predicates that match the predicate type. + items: + description: |- + AnyAllConditions consists of conditions wrapped denoting a logical criteria to be fulfilled. + AnyConditions get fulfilled when at least one of its sub-conditions passes. + AllConditions get fulfilled only when all of its sub-conditions pass. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context + entry (using JMESPath) for conditional + rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context + entry (using JMESPath) for conditional + rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: array + predicateType: + description: Deprecated in favour of 'Type', + to be removed soon + type: string + type: + description: Type defines the type of attestation + contained within the Statement. + type: string + type: object + type: array + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more complex + set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one + or more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + image: + description: Deprecated. Use ImageReferences instead. + type: string + imageReferences: + description: |- + ImageReferences is a list of matching image reference patterns. At least one pattern in the + list must match the image for the rule to apply. Each image reference consists of a registry + address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry. + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + issuer: + description: Deprecated. Use KeylessAttestor instead. + type: string + key: + description: Deprecated. Use StaticKeyAttestor instead. + type: string + mutateDigest: + default: true + description: |- + MutateDigest enables replacement of image tags with digests. + Defaults to true. + type: boolean + repository: + description: |- + Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule. + If specified Repository will override the default OCI image repository configured for the installation. + The repository can also be overridden per Attestor or Attestation. + type: string + required: + default: true + description: Required validates that images are verified + i.e. have matched passed a signature or attestation + check. + type: boolean + roots: + description: Deprecated. Use KeylessAttestor instead. + type: string + skipImageReferences: + description: |- + SkipImageReferences is a list of matching image reference patterns that should be skipped. + At least one pattern in the list must match the image for the rule to be skipped. Each image reference + consists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + subject: + description: Deprecated. Use KeylessAttestor instead. + type: string + type: + description: |- + Type specifies the method of signature validation. The allowed options + are Cosign and Notary. By default Cosign is used if a type is not specified. + enum: + - Cosign + - Notary + type: string + useCache: + default: true + description: UseCache enables caching of image verify + responses for this rule. + type: boolean + verifyDigest: + default: true + description: VerifyDigest validates that images have + a digest. + type: boolean + type: object + type: array + required: + - name + type: object + type: array + type: object + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + ready: + description: Deprecated in favor of Conditions + type: boolean + rulecount: + description: |- + RuleCountStatus contains four variables which describes counts for + validate, generate, mutate and verify images rules + properties: + generate: + description: Count for generate rules in policy + type: integer + mutate: + description: Count for mutate rules in policy + type: integer + validate: + description: Count for validate rules in policy + type: integer + verifyimages: + description: Count for verify image rules in policy + type: integer + required: + - generate + - mutate + - validate + - verifyimages + type: object + validatingadmissionpolicy: + description: ValidatingAdmissionPolicy contains status information + properties: + generated: + description: Generated indicates whether a validating admission + policy is generated from the policy or not + type: boolean + message: + description: |- + Message is a human readable message indicating details about the generation of validating admission policy + It is an empty string when validating admission policy is successfully generated. + type: string + required: + - generated + - message + type: object + required: + - ready + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.admission + name: ADMISSION + type: boolean + - jsonPath: .spec.background + name: BACKGROUND + type: boolean + - jsonPath: .spec.validationFailureAction + name: VALIDATE ACTION + type: string + - jsonPath: .status.conditions[?(@.type == "Ready")].status + name: READY + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + - jsonPath: .spec.failurePolicy + name: FAILURE POLICY + priority: 1 + type: string + - jsonPath: .status.rulecount.validate + name: VALIDATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.mutate + name: MUTATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.generate + name: GENERATE + priority: 1 + type: integer + - jsonPath: .status.rulecount.verifyimages + name: VERIFY IMAGES + priority: 1 + type: integer + - jsonPath: .status.conditions[?(@.type == "Ready")].message + name: MESSAGE + type: string + name: v2beta1 + schema: + openAPIV3Schema: + description: |- + Policy declares validation, mutation, and generation behaviors for matching resources. + See: https://kyverno.io/docs/writing-policies/ for more information. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec defines policy behaviors and contains one or more rules. + properties: + admission: + default: true + description: |- + Admission controls if rules are applied during admission. + Optional. Default value is "true". + type: boolean + applyRules: + description: |- + ApplyRules controls how rules in a policy are applied. Rule are processed in + the order of declaration. When set to `One` processing stops after a rule has + been applied i.e. the rule matches and results in a pass, fail, or error. When + set to `All` all rules in the policy are processed. The default is `All`. + enum: + - All + - One + type: string + background: + default: true + description: |- + Background controls if rules are applied to existing resources during a background scan. + Optional. Default value is "true". The value must be set to "false" if the policy rule + uses variables that are only available in the admission review request (e.g. user name). + type: boolean + failurePolicy: + description: |- + FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled. + Rules within the same policy share the same failure behavior. + Allowed values are Ignore or Fail. Defaults to Fail. + enum: + - Ignore + - Fail + type: string + generateExisting: + description: |- + GenerateExisting controls whether to trigger generate rule in existing resources + If is set to "true" generate rule will be triggered and applied to existing matched resources. + Defaults to "false" if not specified. + type: boolean + generateExistingOnPolicyUpdate: + description: Deprecated, use generateExisting instead + type: boolean + mutateExistingOnPolicyUpdate: + description: |- + MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events. + Default value is "false". + type: boolean + rules: + description: |- + Rules is a list of Rule instances. A Policy contains multiple rules and + each rule can validate, mutate, or generate resources. + items: + description: |- + Rule defines a validation, mutation, or generation control for matching resources. + Each rules contains a match declaration to select resources, and an optional exclude + declaration to specify which resources to exclude. + properties: + celPreconditions: + description: |- + CELPreconditions are used to determine if a policy rule should be applied by evaluating a + set of CEL conditions. It can only be used with the validate.cel subrule + items: + description: MatchCondition represents a condition which must + by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + context: + description: Context defines variables and data sources that + can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST + data + properties: + key: + description: Key is a unique identifier for + the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET + or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference + to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath context + variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object representable + in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when this policy rule should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + generate: + description: Generation is used to create new resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + clone: + description: |- + Clone specifies the source resource used to populate each generated resource. + At most one of Data or Clone can be specified. If neither are provided, the generated + resource will be created with default data only. + properties: + name: + description: Name specifies name of the resource. + type: string + namespace: + description: Namespace specifies source resource namespace. + type: string + type: object + cloneList: + description: CloneList specifies the list of source resource + used to populate each generated resource. + properties: + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + namespace: + description: Namespace specifies source resource namespace. + type: string + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels`. + wildcard characters are not supported. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + data: + description: |- + Data provides the resource declaration used to populate each generated resource. + At most one of Data or Clone must be specified. If neither are provided, the generated + resource will be created with default data only. + x-kubernetes-preserve-unknown-fields: true + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + orphanDownstreamOnPolicyDelete: + description: |- + OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated + them is deleted with synchronization enabled. This option is only applicable to generate rules of the data type. + See https://kyverno.io/docs/writing-policies/generate/#data-examples. + Defaults to "false" if not specified. + type: boolean + synchronize: + description: |- + Synchronize controls if generated resources should be kept in-sync with their source resource. + If Synchronize is set to "true" changes to generated resources will be overwritten with resource + data from Data or the resource specified in the Clone declaration. + Optional. Defaults to "false" if not specified. + type: boolean + uid: + description: UID specifies the resource uid. + type: string + type: object + imageExtractors: + additionalProperties: + items: + properties: + jmesPath: + description: |- + JMESPath is an optional JMESPath expression to apply to the image value. + This is useful when the extracted image begins with a prefix like 'docker://'. + The 'trim_prefix' function may be used to trim the prefix: trim_prefix(@, 'docker://'). + Note - Image digest mutation may not be used when applying a JMESPAth to an image. + type: string + key: + description: |- + Key is an optional name of the field within 'path' that will be used to uniquely identify an image. + Note - this field MUST be unique. + type: string + name: + description: |- + Name is the entry the image will be available under 'images.' in the context. + If this field is not defined, image entries will appear under 'images.custom'. + type: string + path: + description: |- + Path is the path to the object containing the image field in a custom resource. + It should be slash-separated. Each slash-separated key must be a valid YAML key or a wildcard '*'. + Wildcard keys are expanded in case of arrays or objects. + type: string + value: + description: |- + Value is an optional name of the field within 'path' that points to the image URI. + This is useful when a custom 'key' is also defined. + type: string + required: + - path + type: object + type: array + description: |- + ImageExtractors defines a mapping from kinds to ImageExtractorConfigs. + This config is only valid for verifyImages rules. + type: object + match: + description: |- + MatchResources defines when this policy rule should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" + between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one + of the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + mutate: + description: Mutation is used to modify matching resources. + properties: + foreach: + description: ForEach applies mutation rules to a list of + sub-elements by creating a context for each entry in the + list and looping over it to apply the specified logic. + items: + description: ForEachMutation applies mutation rules to + a list of sub-elements by creating a context for each + entry in the list and looping over it to apply the specified + logic. + properties: + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + foreach: + description: Foreach declares a nested foreach iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + order: + description: |- + Order defines the iteration order on the list. + Can be Ascending to iterate from first to last element or Descending to iterate in from last to first element. + enum: + - Ascending + - Descending + type: string + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + targets: + description: Targets defines the target resources to be + mutated. + items: + description: TargetResourceSpec defines targets for mutating + existing resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + type: object + name: + description: Name is a label to identify the rule, It must be + unique within the policy. + maxLength: 63 + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) + for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) + for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + skipBackgroundRequests: + default: true + description: |- + SkipBackgroundRequests bypasses admission requests that are sent by the background controller. + The default value is set to "true", it must be set to "false" to apply + generate and mutateExisting rules to those requests. + type: boolean + validate: + description: Validation is used to validate matching resources. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + cel: + description: CEL allows validation checks using the Common + Expression Language (https://kubernetes.io/docs/reference/using-api/cel/). + properties: + auditAnnotations: + description: AuditAnnotations contains CEL expressions + which are used to produce audit annotations for the + audit event of the API request. + items: + description: AuditAnnotation describes how to produce + an audit annotation for an API request. + properties: + key: + description: |- + key specifies the audit annotation key. The audit annotation keys of + a ValidatingAdmissionPolicy must be unique. The key must be a qualified + name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + + + The key is combined with the resource name of the + ValidatingAdmissionPolicy to construct an audit annotation key: + "{ValidatingAdmissionPolicy name}/{key}". + + + If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy + and the same audit annotation key, the annotation key will be identical. + In this case, the first annotation written with the key will be included + in the audit event and all subsequent annotations with the same key + will be discarded. + + + Required. + type: string + valueExpression: + description: |- + valueExpression represents the expression which is evaluated by CEL to + produce an audit annotation value. The expression must evaluate to either + a string or null value. If the expression evaluates to a string, the + audit annotation is included with the string value. If the expression + evaluates to null or empty string the audit annotation will be omitted. + The valueExpression may be no longer than 5kb in length. + If the result of the valueExpression is more than 10kb in length, it + will be truncated to 10kb. + + + If multiple ValidatingAdmissionPolicyBinding resources match an + API request, then the valueExpression will be evaluated for + each binding. All unique values produced by the valueExpressions + will be joined together in a comma-separated list. + + + Required. + type: string + required: + - key + - valueExpression + type: object + type: array + expressions: + description: Expressions is a list of CELExpression + types. + items: + description: Validation specifies the CEL expression + which is used to apply the validation. + properties: + expression: + description: "Expression represents the expression + which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL + expressions have access to the contents of the + API request/response, organized into CEL variables + as well as some other useful variables:\n\n\n- + 'object' - The object from the incoming request. + The value is null for DELETE requests.\n- 'oldObject' + - The existing object. The value is null for + CREATE requests.\n- 'request' - Attributes of + the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- + 'params' - Parameter resource referred to by + the policy binding being evaluated. Only populated + if the policy has a ParamKind.\n- 'namespaceObject' + - The namespace object that the incoming object + belongs to. The value is null for cluster-scoped + resources.\n- 'variables' - Map of composited + variables, from its name to its lazily evaluated + value.\n For example, a variable named 'foo' + can be accessed as 'variables.foo'.\n- 'authorizer' + - A CEL Authorizer. May be used to perform authorization + checks for the principal (user or service account) + of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- + 'authorizer.requestResource' - A CEL ResourceCheck + constructed from the 'authorizer' and configured + with the\n request resource.\n\n\nThe `apiVersion`, + `kind`, `metadata.name` and `metadata.generateName` + are always accessible from the root of the\nobject. + No other metadata properties are accessible.\n\n\nOnly + property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` + are accessible.\nAccessible property names are + escaped according to the following rules when + accessed in the expression:\n- '__' escapes + to '__underscores__'\n- '.' escapes to '__dot__'\n- + '-' escapes to '__dash__'\n- '/' escapes to + '__slash__'\n- Property names that exactly match + a CEL RESERVED keyword escape to '__{keyword}__'. + The keywords are:\n\t \"true\", \"false\", + \"null\", \"in\", \"as\", \"break\", \"const\", + \"continue\", \"else\", \"for\", \"function\", + \"if\",\n\t \"import\", \"let\", \"loop\", + \"package\", \"namespace\", \"return\".\nExamples:\n + \ - Expression accessing a property named \"namespace\": + {\"Expression\": \"object.__namespace__ > 0\"}\n + \ - Expression accessing a property named \"x-prop\": + {\"Expression\": \"object.x__dash__prop > 0\"}\n + \ - Expression accessing a property named \"redact__d\": + {\"Expression\": \"object.redact__underscores__d + > 0\"}\n\n\nEquality on arrays with list type + of 'set' or 'map' ignores element order, i.e. + [1, 2] == [2, 1].\nConcatenation on arrays with + x-kubernetes-list-type use the semantics of + the list type:\n - 'set': `X + Y` performs + a union where the array positions of all elements + in `X` are preserved and\n non-intersecting + elements in `Y` are appended, retaining their + partial order.\n - 'map': `X + Y` performs + a merge where the array positions of all keys + in `X` are preserved but the values\n are + overwritten by values in `Y` when the key sets + of `X` and `Y` intersect. Elements in `Y` with\n + \ non-intersecting keys are appended, retaining + their partial order.\nRequired." + type: string + message: + description: |- + Message represents the message displayed when validation fails. The message is required if the Expression contains + line breaks. The message must not contain line breaks. + If unset, the message is "failed rule: {Rule}". + e.g. "must be a URL with the host matching spec.host" + If the Expression contains line breaks. Message is required. + The message must not contain line breaks. + If unset, the message is "failed Expression: {Expression}". + type: string + messageExpression: + description: |- + messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. + Since messageExpression is used as a failure message, it must evaluate to a string. + If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. + If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced + as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string + that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and + the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. + messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. + Example: + "object.x must be less than max ("+string(params.max)+")" + type: string + reason: + description: |- + Reason represents a machine-readable description of why this validation failed. + If this is the first validation in the list to fail, this reason, as well as the + corresponding HTTP response code, are used in the + HTTP response to the client. + The currently supported reasons are: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". + If not set, StatusReasonInvalid is used in the response to the client. + type: string + required: + - expression + type: object + type: array + paramKind: + description: ParamKind is a tuple of Group Kind and + Version. + properties: + apiVersion: + description: |- + APIVersion is the API group version the resources belong to. + In format of "group/version". + Required. + type: string + kind: + description: |- + Kind is the API kind the resources belong to. + Required. + type: string + type: object + x-kubernetes-map-type: atomic + paramRef: + description: ParamRef references a parameter resource. + properties: + name: + description: |- + `name` is the name of the resource being referenced. + + + `name` and `selector` are mutually exclusive properties. If one is set, + the other must be unset. + type: string + namespace: + description: |- + namespace is the namespace of the referenced resource. Allows limiting + the search for params to a specific namespace. Applies to both `name` and + `selector` fields. + + + A per-namespace parameter may be used by specifying a namespace-scoped + `paramKind` in the policy and leaving this field empty. + + + - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this + field results in a configuration error. + + + - If `paramKind` is namespace-scoped, the namespace of the object being + evaluated for admission will be used when this field is left unset. Take + care that if this is left empty the binding must not match any cluster-scoped + resources, which will result in an error. + type: string + parameterNotFoundAction: + description: |- + `parameterNotFoundAction` controls the behavior of the binding when the resource + exists, and name or selector is valid, but there are no parameters + matched by the binding. If the value is set to `Allow`, then no + matched parameters will be treated as successful validation by the binding. + If set to `Deny`, then no matched parameters will be subject to the + `failurePolicy` of the policy. + + + Allowed values are `Allow` or `Deny` + Default to `Deny` + type: string + selector: + description: |- + selector can be used to match multiple param objects based on their labels. + Supply selector: {} to match all resources of the ParamKind. + + + If multiple params are found, they are all evaluated with the policy expressions + and the results are ANDed together. + + + One of `name` or `selector` must be set, but `name` and `selector` are + mutually exclusive properties. If one is set, the other must be unset. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + x-kubernetes-map-type: atomic + variables: + description: |- + Variables contain definitions of variables that can be used in composition of other expressions. + Each variable is defined as a named CEL expression. + The variables defined here will be available under `variables` in other expressions of the policy. + items: + description: Variable is the definition of a variable + that is used for composition. + properties: + expression: + description: |- + Expression is the expression that will be evaluated as the value of the variable. + The CEL expression has access to the same identifiers as the CEL expressions in Validation. + type: string + name: + description: |- + Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. + The variable can be accessed in other expressions through `variables` + For example, if name is "foo", the variable will be available as `variables.foo` + type: string + required: + - expression + - name + type: object + type: array + type: object + deny: + description: Deny defines conditions used to pass or fail + a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: object + foreach: + description: ForEach applies validate rules to a list of + sub-elements by creating a context for each entry in the + list and looping over it to apply the specified logic. + items: + description: ForEachValidation applies validate rules + to a list of sub-elements by creating a context for + each entry in the list and looping over it to apply + the specified logic. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the + HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is + a reference to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON + object representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + deny: + description: Deny defines conditions used to pass + or fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + elementScope: + description: |- + ElementScope specifies whether to use the current list element as the scope for validation. Defaults to "true" if not specified. + When set to "false", "request.object" is used as the validation scope within the foreach + block to allow referencing other elements in the subtree. + type: boolean + foreach: + description: Foreach declares a nested foreach iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry (using + JMESPath) for conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display + message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + manifests: + description: Manifest specifies conditions for manifest + verification + properties: + annotationDomain: + description: AnnotationDomain is custom domain of annotation + for message and signature. Default is "cosign.sigstore.dev". + type: string + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set of + Attestor used to specify a more complex + set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one + or more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates used + to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions are + certificate-extensions used for keyless + signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret resource + that contains a public key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + dryRun: + description: DryRun configuration + properties: + enable: + type: boolean + namespace: + type: string + type: object + ignoreFields: + description: Fields which will be ignored while comparing + manifests. + items: + properties: + fields: + items: + type: string + type: array + objects: + items: + properties: + group: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + version: + type: string + type: object + type: array + type: object + type: array + repository: + description: |- + Repository is an optional alternate OCI repository to use for resource bundle reference. + The repository can be overridden per Attestor or Attestation. + type: string + type: object + message: + description: Message specifies a custom message to be displayed + on failure. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + podSecurity: + description: |- + PodSecurity applies exemptions for Kubernetes Pod Security admission + by specifying exclusions for Pod Security Standards controls. + properties: + exclude: + description: Exclude specifies the Pod Security Standard + controls to be excluded. + items: + description: PodSecurityStandard specifies the Pod + Security Standard controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values + that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + level: + description: |- + Level defines the Pod Security Standard level to be applied to workloads. + Allowed values are privileged, baseline, and restricted. + enum: + - privileged + - baseline + - restricted + type: string + version: + description: |- + Version defines the Pod Security Standard versions that Kubernetes supports. + Allowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest. + enum: + - v1.19 + - v1.20 + - v1.21 + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - latest + type: string + type: object + type: object + verifyImages: + description: VerifyImages is used to verify image signatures + and mutate them to add a digest + items: + description: |- + ImageVerification validates that images that match the specified pattern + are signed with the supplied public key. Once the image is verified it is + mutated to include the SHA digest retrieved during the registration. + properties: + attestations: + description: |- + Attestations are optional checks for signed in-toto Statements used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statement declarations. + items: + description: |- + Attestation are checks for signed in-toto Statements that are used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statements. + properties: + attestors: + description: Attestors specify the required attestors + (i.e. authorities). + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more + complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and + sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + conditions: + description: |- + Conditions are used to verify attributes within a Predicate. If no Conditions are specified + the attestation check is satisfied as long there are predicates that match the predicate type. + items: + description: |- + AnyAllConditions consists of conditions wrapped denoting a logical criteria to be fulfilled. + AnyConditions get fulfilled when at least one of its sub-conditions passes. + AllConditions get fulfilled only when all of its sub-conditions pass. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: array + predicateType: + description: Deprecated in favour of 'Type', to + be removed soon + type: string + type: + description: Type defines the type of attestation + contained within the Statement. + type: string + type: object + type: array + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set of Attestor + used to specify a more complex set of match + authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one or + more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates used + to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions are + certificate-extensions used for keyless + signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified identity + used for keyless signing, for example + the email address. + type: string + type: object + keys: + description: Keys specifies one or more public + keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is used + to validate SCTs against a custom + source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips transparency + log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address of + the transparency log. Defaults to + the public Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret resource + that contains a public key + properties: + name: + description: Name of the secret. The + provided secret must contain a key + named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values are + sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + imageReferences: + description: |- + ImageReferences is a list of matching image reference patterns. At least one pattern in the + list must match the image for the rule to apply. Each image reference consists of a registry + address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + mutateDigest: + default: true + description: |- + MutateDigest enables replacement of image tags with digests. + Defaults to true. + type: boolean + repository: + description: |- + Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule. + If specified Repository will override the default OCI image repository configured for the installation. + The repository can also be overridden per Attestor or Attestation. + type: string + required: + default: true + description: Required validates that images are verified + i.e. have matched passed a signature or attestation + check. + type: boolean + skipImageReferences: + description: |- + SkipImageReferences is a list of matching image reference patterns that should be skipped. + At least one pattern in the list must match the image for the rule to be skipped. Each image reference + consists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + type: + description: |- + Type specifies the method of signature validation. The allowed options + are Cosign and Notary. By default Cosign is used if a type is not specified. + enum: + - Cosign + - Notary + type: string + useCache: + default: true + description: UseCache enables caching of image verify + responses for this rule + type: boolean + verifyDigest: + default: true + description: VerifyDigest validates that images have a + digest. + type: boolean + type: object + type: array + required: + - name + type: object + type: array + schemaValidation: + description: Deprecated. + type: boolean + useServerSideApply: + description: |- + UseServerSideApply controls whether to use server-side apply for generate rules + If is set to "true" create & update for generate rules will use apply instead of create/update. + Defaults to "false" if not specified. + type: boolean + validationFailureAction: + default: Audit + description: |- + ValidationFailureAction defines if a validation policy rule violation should block + the admission review request (enforce), or allow (audit) the admission review request + and report an error in a policy report. Optional. + Allowed values are audit or enforce. The default value is "Audit". + enum: + - audit + - enforce + - Audit + - Enforce + type: string + validationFailureActionOverrides: + description: |- + ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction + namespace-wise. It overrides ValidationFailureAction for the specified namespaces. + items: + properties: + action: + description: ValidationFailureAction defines the policy validation + failure action + enum: + - audit + - enforce + - Audit + - Enforce + type: string + namespaceSelector: + description: |- + A label selector is a label query over a set of resources. The result of matchLabels and + matchExpressions are ANDed. An empty label selector matches all objects. A null + label selector matches no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + type: object + type: array + webhookConfiguration: + description: |- + WebhookConfiguration specifies the custom configuration for Kubernetes admission webhookconfiguration. + Requires Kubernetes 1.27 or later. + properties: + matchConditions: + description: MatchCondition configures admission webhook matchConditions. + items: + description: MatchCondition represents a condition which must + by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + type: object + webhookTimeoutSeconds: + description: |- + WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy. + After the configured time expires, the admission request may fail, or may simply ignore the policy results, + based on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds. + format: int32 + type: integer + type: object + status: + description: Status contains policy runtime data. + properties: + autogen: + description: AutogenStatus contains autogen status information. + properties: + rules: + description: Rules is a list of Rule instances. It contains auto + generated rules added for pod controllers + items: + description: |- + Rule defines a validation, mutation, or generation control for matching resources. + Each rules contains a match declaration to select resources, and an optional exclude + declaration to specify which resources to exclude. + properties: + celPreconditions: + description: |- + CELPreconditions are used to determine if a policy rule should be applied by evaluating a + set of CEL conditions. It can only be used with the validate.cel subrule + items: + description: MatchCondition represents a condition which + must by fulfilled for a request to be sent to a webhook. + properties: + expression: + description: |- + Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. + CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + + + 'object' - The object from the incoming request. The value is null for DELETE requests. + 'oldObject' - The existing object. The value is null for CREATE requests. + 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). + 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + request resource. + Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + + + Required. + type: string + name: + description: |- + Name is an identifier for this match condition, used for strategic merging of MatchConditions, + as well as providing an identifier for logging purposes. A good name should be descriptive of + the associated expression. + Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and + must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or + '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an + optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + + + Required. + type: string + required: + - expression + - name + type: object + type: array + context: + description: Context defines variables and data sources + that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains the HTTP POST + data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request type (GET + or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference is a reference + to a cached global context entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials provides + credentials that will be used for authentication + with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows + insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary JMESPath + context variable that can be defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary JSON object + representable in YAML or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + exclude: + description: |- + ExcludeResources defines when this policy rule should not be applied. The exclude + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the name or role. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one of + the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + generate: + description: Generation is used to create new resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + clone: + description: |- + Clone specifies the source resource used to populate each generated resource. + At most one of Data or Clone can be specified. If neither are provided, the generated + resource will be created with default data only. + properties: + name: + description: Name specifies name of the resource. + type: string + namespace: + description: Namespace specifies source resource + namespace. + type: string + type: object + cloneList: + description: CloneList specifies the list of source + resource used to populate each generated resource. + properties: + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + namespace: + description: Namespace specifies source resource + namespace. + type: string + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels`. + wildcard characters are not supported. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + data: + description: |- + Data provides the resource declaration used to populate each generated resource. + At most one of Data or Clone must be specified. If neither are provided, the generated + resource will be created with default data only. + x-kubernetes-preserve-unknown-fields: true + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + orphanDownstreamOnPolicyDelete: + description: |- + OrphanDownstreamOnPolicyDelete controls whether generated resources should be deleted when the rule that generated + them is deleted with synchronization enabled. This option is only applicable to generate rules of the data type. + See https://kyverno.io/docs/writing-policies/generate/#data-examples. + Defaults to "false" if not specified. + type: boolean + synchronize: + description: |- + Synchronize controls if generated resources should be kept in-sync with their source resource. + If Synchronize is set to "true" changes to generated resources will be overwritten with resource + data from Data or the resource specified in the Clone declaration. + Optional. Defaults to "false" if not specified. + type: boolean + uid: + description: UID specifies the resource uid. + type: string + type: object + imageExtractors: + additionalProperties: + items: + properties: + jmesPath: + description: |- + JMESPath is an optional JMESPath expression to apply to the image value. + This is useful when the extracted image begins with a prefix like 'docker://'. + The 'trim_prefix' function may be used to trim the prefix: trim_prefix(@, 'docker://'). + Note - Image digest mutation may not be used when applying a JMESPAth to an image. + type: string + key: + description: |- + Key is an optional name of the field within 'path' that will be used to uniquely identify an image. + Note - this field MUST be unique. + type: string + name: + description: |- + Name is the entry the image will be available under 'images.' in the context. + If this field is not defined, image entries will appear under 'images.custom'. + type: string + path: + description: |- + Path is the path to the object containing the image field in a custom resource. + It should be slash-separated. Each slash-separated key must be a valid YAML key or a wildcard '*'. + Wildcard keys are expanded in case of arrays or objects. + type: string + value: + description: |- + Value is an optional name of the field within 'path' that points to the image URI. + This is useful when a custom 'key' is also defined. + type: string + required: + - path + type: object + type: array + description: |- + ImageExtractors defines a mapping from kinds to ImageExtractorConfigs. + This config is only valid for verifyImages rules. + type: object + match: + description: |- + MatchResources defines when this policy rule should be applied. The match + criteria can include resource information (e.g. kind, name, namespace, labels) + and admission review request information like the user name or role. + At least one kind is required. + properties: + all: + description: All allows specifying resources which will + be ANDed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will + be ORed + items: + description: ResourceFilter allow users to "AND" or + "OR" between resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information + about the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values + ["CREATE, "UPDATE", "CONNECT", "DELETE"], + which are used to match a specific action. + items: + description: AdmissionOperation can have + one of the values CREATE, UPDATE, CONNECT, + DELETE, which are used to match a specific + action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The + requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role + names for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names + like users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + clusterRoles: + description: ClusterRoles is the list of cluster-wide + role names for the user. + items: + type: string + type: array + resources: + description: |- + ResourceDescription contains information about the resource being created or modified. + Requires at least one tag to be specified when under MatchResources. + Specifying ResourceDescription directly under match is being deprecated. + Please specify under "any" or "all" instead. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used + to match a specific action. + items: + description: AdmissionOperation can have one of + the values CREATE, UPDATE, CONNECT, DELETE, + which are used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + mutate: + description: Mutation is used to modify matching resources. + properties: + foreach: + description: ForEach applies mutation rules to a list + of sub-elements by creating a context for each entry + in the list and looping over it to apply the specified + logic. + items: + description: ForEachMutation applies mutation rules + to a list of sub-elements by creating a context + for each entry in the list and looping over it to + apply the specified logic. + properties: + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + foreach: + description: Foreach declares a nested foreach + iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + order: + description: |- + Order defines the iteration order on the list. + Can be Ascending to iterate from first to last element or Descending to iterate in from last to first element. + enum: + - Ascending + - Descending + type: string + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + patchStrategicMerge: + description: |- + PatchStrategicMerge is a strategic merge patch used to modify resources. + See https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/ + and https://kubectl.docs.kubernetes.io/references/kustomize/patchesstrategicmerge/. + x-kubernetes-preserve-unknown-fields: true + patchesJson6902: + description: |- + PatchesJSON6902 is a list of RFC 6902 JSON Patch declarations used to modify resources. + See https://tools.ietf.org/html/rfc6902 and https://kubectl.docs.kubernetes.io/references/kustomize/patchesjson6902/. + type: string + targets: + description: Targets defines the target resources to + be mutated. + items: + description: TargetResourceSpec defines targets for + mutating existing resources. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + type: object + name: + description: Name is a label to identify the rule, It must + be unique within the policy. + maxLength: 63 + type: string + preconditions: + description: |- + Preconditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. A direct list + of conditions (without `any` or `all` statements is supported for backwards compatibility but + will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/preconditions/ + x-kubernetes-preserve-unknown-fields: true + skipBackgroundRequests: + default: true + description: |- + SkipBackgroundRequests bypasses admission requests that are sent by the background controller. + The default value is set to "true", it must be set to "false" to apply + generate and mutateExisting rules to those requests. + type: boolean + validate: + description: Validation is used to validate matching resources. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + cel: + description: CEL allows validation checks using the + Common Expression Language (https://kubernetes.io/docs/reference/using-api/cel/). + properties: + auditAnnotations: + description: AuditAnnotations contains CEL expressions + which are used to produce audit annotations for + the audit event of the API request. + items: + description: AuditAnnotation describes how to + produce an audit annotation for an API request. + properties: + key: + description: |- + key specifies the audit annotation key. The audit annotation keys of + a ValidatingAdmissionPolicy must be unique. The key must be a qualified + name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + + + The key is combined with the resource name of the + ValidatingAdmissionPolicy to construct an audit annotation key: + "{ValidatingAdmissionPolicy name}/{key}". + + + If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy + and the same audit annotation key, the annotation key will be identical. + In this case, the first annotation written with the key will be included + in the audit event and all subsequent annotations with the same key + will be discarded. + + + Required. + type: string + valueExpression: + description: |- + valueExpression represents the expression which is evaluated by CEL to + produce an audit annotation value. The expression must evaluate to either + a string or null value. If the expression evaluates to a string, the + audit annotation is included with the string value. If the expression + evaluates to null or empty string the audit annotation will be omitted. + The valueExpression may be no longer than 5kb in length. + If the result of the valueExpression is more than 10kb in length, it + will be truncated to 10kb. + + + If multiple ValidatingAdmissionPolicyBinding resources match an + API request, then the valueExpression will be evaluated for + each binding. All unique values produced by the valueExpressions + will be joined together in a comma-separated list. + + + Required. + type: string + required: + - key + - valueExpression + type: object + type: array + expressions: + description: Expressions is a list of CELExpression + types. + items: + description: Validation specifies the CEL expression + which is used to apply the validation. + properties: + expression: + description: "Expression represents the expression + which will be evaluated by CEL.\nref: https://github.com/google/cel-spec\nCEL + expressions have access to the contents + of the API request/response, organized into + CEL variables as well as some other useful + variables:\n\n\n- 'object' - The object + from the incoming request. The value is + null for DELETE requests.\n- 'oldObject' + - The existing object. The value is null + for CREATE requests.\n- 'request' - Attributes + of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n- + 'params' - Parameter resource referred to + by the policy binding being evaluated. Only + populated if the policy has a ParamKind.\n- + 'namespaceObject' - The namespace object + that the incoming object belongs to. The + value is null for cluster-scoped resources.\n- + 'variables' - Map of composited variables, + from its name to its lazily evaluated value.\n + \ For example, a variable named 'foo' can + be accessed as 'variables.foo'.\n- 'authorizer' + - A CEL Authorizer. May be used to perform + authorization checks for the principal (user + or service account) of the request.\n See + https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- + 'authorizer.requestResource' - A CEL ResourceCheck + constructed from the 'authorizer' and configured + with the\n request resource.\n\n\nThe `apiVersion`, + `kind`, `metadata.name` and `metadata.generateName` + are always accessible from the root of the\nobject. + No other metadata properties are accessible.\n\n\nOnly + property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` + are accessible.\nAccessible property names + are escaped according to the following rules + when accessed in the expression:\n- '__' + escapes to '__underscores__'\n- '.' escapes + to '__dot__'\n- '-' escapes to '__dash__'\n- + '/' escapes to '__slash__'\n- Property names + that exactly match a CEL RESERVED keyword + escape to '__{keyword}__'. The keywords + are:\n\t \"true\", \"false\", \"null\", + \"in\", \"as\", \"break\", \"const\", \"continue\", + \"else\", \"for\", \"function\", \"if\",\n\t + \ \"import\", \"let\", \"loop\", \"package\", + \"namespace\", \"return\".\nExamples:\n + \ - Expression accessing a property named + \"namespace\": {\"Expression\": \"object.__namespace__ + > 0\"}\n - Expression accessing a property + named \"x-prop\": {\"Expression\": \"object.x__dash__prop + > 0\"}\n - Expression accessing a property + named \"redact__d\": {\"Expression\": \"object.redact__underscores__d + > 0\"}\n\n\nEquality on arrays with list + type of 'set' or 'map' ignores element order, + i.e. [1, 2] == [2, 1].\nConcatenation on + arrays with x-kubernetes-list-type use the + semantics of the list type:\n - 'set': + `X + Y` performs a union where the array + positions of all elements in `X` are preserved + and\n non-intersecting elements in `Y` + are appended, retaining their partial order.\n + \ - 'map': `X + Y` performs a merge where + the array positions of all keys in `X` are + preserved but the values\n are overwritten + by values in `Y` when the key sets of `X` + and `Y` intersect. Elements in `Y` with\n + \ non-intersecting keys are appended, + retaining their partial order.\nRequired." + type: string + message: + description: |- + Message represents the message displayed when validation fails. The message is required if the Expression contains + line breaks. The message must not contain line breaks. + If unset, the message is "failed rule: {Rule}". + e.g. "must be a URL with the host matching spec.host" + If the Expression contains line breaks. Message is required. + The message must not contain line breaks. + If unset, the message is "failed Expression: {Expression}". + type: string + messageExpression: + description: |- + messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. + Since messageExpression is used as a failure message, it must evaluate to a string. + If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. + If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced + as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string + that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and + the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. + messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. + Example: + "object.x must be less than max ("+string(params.max)+")" + type: string + reason: + description: |- + Reason represents a machine-readable description of why this validation failed. + If this is the first validation in the list to fail, this reason, as well as the + corresponding HTTP response code, are used in the + HTTP response to the client. + The currently supported reasons are: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". + If not set, StatusReasonInvalid is used in the response to the client. + type: string + required: + - expression + type: object + type: array + paramKind: + description: ParamKind is a tuple of Group Kind + and Version. + properties: + apiVersion: + description: |- + APIVersion is the API group version the resources belong to. + In format of "group/version". + Required. + type: string + kind: + description: |- + Kind is the API kind the resources belong to. + Required. + type: string + type: object + x-kubernetes-map-type: atomic + paramRef: + description: ParamRef references a parameter resource. + properties: + name: + description: |- + `name` is the name of the resource being referenced. + + + `name` and `selector` are mutually exclusive properties. If one is set, + the other must be unset. + type: string + namespace: + description: |- + namespace is the namespace of the referenced resource. Allows limiting + the search for params to a specific namespace. Applies to both `name` and + `selector` fields. + + + A per-namespace parameter may be used by specifying a namespace-scoped + `paramKind` in the policy and leaving this field empty. + + + - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this + field results in a configuration error. + + + - If `paramKind` is namespace-scoped, the namespace of the object being + evaluated for admission will be used when this field is left unset. Take + care that if this is left empty the binding must not match any cluster-scoped + resources, which will result in an error. + type: string + parameterNotFoundAction: + description: |- + `parameterNotFoundAction` controls the behavior of the binding when the resource + exists, and name or selector is valid, but there are no parameters + matched by the binding. If the value is set to `Allow`, then no + matched parameters will be treated as successful validation by the binding. + If set to `Deny`, then no matched parameters will be subject to the + `failurePolicy` of the policy. + + + Allowed values are `Allow` or `Deny` + Default to `Deny` + type: string + selector: + description: |- + selector can be used to match multiple param objects based on their labels. + Supply selector: {} to match all resources of the ParamKind. + + + If multiple params are found, they are all evaluated with the policy expressions + and the results are ANDed together. + + + One of `name` or `selector` must be set, but `name` and `selector` are + mutually exclusive properties. If one is set, the other must be unset. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + x-kubernetes-map-type: atomic + variables: + description: |- + Variables contain definitions of variables that can be used in composition of other expressions. + Each variable is defined as a named CEL expression. + The variables defined here will be available under `variables` in other expressions of the policy. + items: + description: Variable is the definition of a variable + that is used for composition. + properties: + expression: + description: |- + Expression is the expression that will be evaluated as the value of the variable. + The CEL expression has access to the same identifiers as the CEL expressions in Validation. + type: string + name: + description: |- + Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. + The variable can be accessed in other expressions through `variables` + For example, if name is "foo", the variable will be available as `variables.foo` + type: string + required: + - expression + - name + type: object + type: array + type: object + deny: + description: Deny defines conditions used to pass or + fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + foreach: + description: ForEach applies validate rules to a list + of sub-elements by creating a context for each entry + in the list and looping over it to apply the specified + logic. + items: + description: ForEachValidation applies validate rules + to a list of sub-elements by creating a context + for each entry in the list and looping over it to + apply the specified logic. + properties: + anyPattern: + description: |- + AnyPattern specifies list of validation patterns. At least one of the patterns + must be satisfied for the validation rule to succeed. + x-kubernetes-preserve-unknown-fields: true + context: + description: Context defines variables and data + sources that can be used during rule execution. + items: + description: |- + ContextEntry adds variables and data sources to a rule Context. Either a + ConfigMap reference or a APILookup must be provided. + properties: + apiCall: + description: |- + APICall is an HTTP request to the Kubernetes API server, or other JSON web service. + The data returned is stored in the context with the name for the context entry. + properties: + data: + description: |- + The data object specifies the POST data sent to the server. + Only applicable when the method field is set to POST. + items: + description: RequestData contains + the HTTP POST data + properties: + key: + description: Key is a unique identifier + for the data value + type: string + value: + description: Value is the data + value + x-kubernetes-preserve-unknown-fields: true + required: + - key + - value + type: object + type: array + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + method: + default: GET + description: Method is the HTTP request + type (GET or POST). + enum: + - GET + - POST + type: string + service: + description: |- + Service is an API call to a JSON web service. + This is used for non-Kubernetes API server calls. + It's mutually exclusive with the URLPath field. + properties: + caBundle: + description: |- + CABundle is a PEM encoded CA bundle which will be used to validate + the server certificate. + type: string + url: + description: |- + URL is the JSON web service URL. A typical form is + `https://{service}.{namespace}:{port}/{path}`. + type: string + required: + - url + type: object + urlPath: + description: |- + URLPath is the URL path to be used in the HTTP GET or POST request to the + Kubernetes API server (e.g. "/api/v1/namespaces" or "/apis/apps/v1/deployments"). + The format required is the same format used by the `kubectl get --raw` command. + See https://kyverno.io/docs/writing-policies/external-data-sources/#variables-from-kubernetes-api-server-calls + for details. + It's mutually exclusive with the Service field. + type: string + type: object + configMap: + description: ConfigMap is the ConfigMap + reference. + properties: + name: + description: Name is the ConfigMap name. + type: string + namespace: + description: Namespace is the ConfigMap + namespace. + type: string + required: + - name + type: object + globalReference: + description: GlobalContextEntryReference + is a reference to a cached global context + entry. + properties: + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the JSON response returned from the server. For example + a JMESPath of "items | length(@)" applied to the API server response + for the URLPath "/apis/apps/v1/deployments" will return the total count + of deployments across all namespaces. + type: string + name: + description: Name of the global context + entry + type: string + type: object + imageRegistry: + description: |- + ImageRegistry defines requests to an OCI/Docker V2 registry to fetch image + details. + properties: + imageRegistryCredentials: + description: ImageRegistryCredentials + provides credentials that will be + used for authentication with registry + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry + allows insecure access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential + providers required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + jmesPath: + description: |- + JMESPath is an optional JSON Match Expression that can be used to + transform the ImageData struct returned as a result of processing + the image reference. + type: string + reference: + description: |- + Reference is image reference to a container image in the registry. + Example: ghcr.io/kyverno/kyverno:latest + type: string + required: + - reference + type: object + name: + description: Name is the variable name. + type: string + variable: + description: Variable defines an arbitrary + JMESPath context variable that can be + defined inline. + properties: + default: + description: |- + Default is an optional arbitrary JSON object that the variable may take if the JMESPath + expression evaluates to nil + x-kubernetes-preserve-unknown-fields: true + jmesPath: + description: |- + JMESPath is an optional JMESPath Expression that can be used to + transform the variable. + type: string + value: + description: Value is any arbitrary + JSON object representable in YAML + or JSON form. + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + type: array + deny: + description: Deny defines conditions used to pass + or fail a validation rule. + properties: + conditions: + description: |- + Multiple conditions can be declared under an `any` or `all` statement. A direct list + of conditions (without `any` or `all` statements) is also supported for backwards compatibility + but will be deprecated in the next major release. + See: https://kyverno.io/docs/writing-policies/validate/#deny-rules + x-kubernetes-preserve-unknown-fields: true + type: object + elementScope: + description: |- + ElementScope specifies whether to use the current list element as the scope for validation. Defaults to "true" if not specified. + When set to "false", "request.object" is used as the validation scope within the foreach + block to allow referencing other elements in the subtree. + type: boolean + foreach: + description: Foreach declares a nested foreach + iterator + x-kubernetes-preserve-unknown-fields: true + list: + description: |- + List specifies a JMESPath expression that results in one or more elements + to which the validation logic is applied. + type: string + pattern: + description: Pattern specifies an overlay-style + pattern used to check resources. + x-kubernetes-preserve-unknown-fields: true + preconditions: + description: |- + AnyAllConditions are used to determine if a policy rule should be applied by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + See: https://kyverno.io/docs/writing-policies/preconditions/ + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context entry + (using JMESPath) for conditional rule + evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + manifests: + description: Manifest specifies conditions for manifest + verification + properties: + annotationDomain: + description: AnnotationDomain is custom domain of + annotation for message and signature. Default + is "cosign.sigstore.dev". + type: string + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more + complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, + is used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and + sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + dryRun: + description: DryRun configuration + properties: + enable: + type: boolean + namespace: + type: string + type: object + ignoreFields: + description: Fields which will be ignored while + comparing manifests. + items: + properties: + fields: + items: + type: string + type: array + objects: + items: + properties: + group: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + version: + type: string + type: object + type: array + type: object + type: array + repository: + description: |- + Repository is an optional alternate OCI repository to use for resource bundle reference. + The repository can be overridden per Attestor or Attestation. + type: string + type: object + message: + description: Message specifies a custom message to be + displayed on failure. + type: string + pattern: + description: Pattern specifies an overlay-style pattern + used to check resources. + x-kubernetes-preserve-unknown-fields: true + podSecurity: + description: |- + PodSecurity applies exemptions for Kubernetes Pod Security admission + by specifying exclusions for Pod Security Standards controls. + properties: + exclude: + description: Exclude specifies the Pod Security + Standard controls to be excluded. + items: + description: PodSecurityStandard specifies the + Pod Security Standard controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values + that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + level: + description: |- + Level defines the Pod Security Standard level to be applied to workloads. + Allowed values are privileged, baseline, and restricted. + enum: + - privileged + - baseline + - restricted + type: string + version: + description: |- + Version defines the Pod Security Standard versions that Kubernetes supports. + Allowed values are v1.19, v1.20, v1.21, v1.22, v1.23, v1.24, v1.25, v1.26, v1.27, v1.28, v1.29, latest. Defaults to latest. + enum: + - v1.19 + - v1.20 + - v1.21 + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - latest + type: string + type: object + type: object + verifyImages: + description: VerifyImages is used to verify image signatures + and mutate them to add a digest + items: + description: |- + ImageVerification validates that images that match the specified pattern + are signed with the supplied public key. Once the image is verified it is + mutated to include the SHA digest retrieved during the registration. + properties: + additionalExtensions: + additionalProperties: + type: string + description: Deprecated. + type: object + annotations: + additionalProperties: + type: string + description: Deprecated. Use annotations per Attestor + instead. + type: object + attestations: + description: |- + Attestations are optional checks for signed in-toto Statements used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statement declarations. + items: + description: |- + Attestation are checks for signed in-toto Statements that are used to verify the image. + See https://github.com/in-toto/attestation. Kyverno fetches signed attestations from the + OCI registry and decodes them into a list of Statements. + properties: + attestors: + description: Attestors specify the required + attestors (i.e. authorities). + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested + set of Attestor used to specify + a more complex set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies + one or more certificates. + properties: + cert: + description: Cert is an optional + PEM-encoded public certificate. + type: string + certChain: + description: CertChain is an + optional PEM encoded set of + certificates used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions + used for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the + verified identity used for + keyless signing, for example + the email address. + type: string + type: object + keys: + description: Keys specifies one + or more public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if + set, is used to validate + SCTs against a custom + source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog + skips transparency log + verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the + address of the transparency + log. Defaults to the public + Rekor log instance https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a + Secret resource that contains + a public key + properties: + name: + description: Name of the + secret. The provided secret + must contain a key named + cosign.pub. + type: string + namespace: + description: Namespace name + where the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature + algorithm for public keys. + Supported values are sha224, + sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + conditions: + description: |- + Conditions are used to verify attributes within a Predicate. If no Conditions are specified + the attestation check is satisfied as long there are predicates that match the predicate type. + items: + description: |- + AnyAllConditions consists of conditions wrapped denoting a logical criteria to be fulfilled. + AnyConditions get fulfilled when at least one of its sub-conditions passes. + AllConditions get fulfilled only when all of its sub-conditions pass. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context + entry (using JMESPath) for conditional + rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass + items: + description: Condition defines variable-based + conditional criteria for rule execution. + properties: + key: + description: Key is the context + entry (using JMESPath) for conditional + rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional + display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - In + - AnyIn + - AllIn + - NotIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + type: array + predicateType: + description: Deprecated in favour of 'Type', + to be removed soon + type: string + type: + description: Type defines the type of attestation + contained within the Statement. + type: string + type: object + type: array + attestors: + description: Attestors specified the required attestors + (i.e. authorities) + items: + properties: + count: + description: |- + Count specifies the required number of entries that must match. If the count is null, all entries must match + (a logical AND). If the count is 1, at least one entry must match (a logical OR). If the count contains a + value N, then N must be less than or equal to the size of entries, and at least N entries must match. + minimum: 1 + type: integer + entries: + description: |- + Entries contains the available attestors. An attestor can be a static key, + attributes for keyless verification, or a nested attestor declaration. + items: + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are used for image verification. + Every specified key-value pair must exist and match in the verified payload. + The payload may contain other key-value pairs. + type: object + attestor: + description: Attestor is a nested set + of Attestor used to specify a more complex + set of match authorities. + x-kubernetes-preserve-unknown-fields: true + certificates: + description: Certificates specifies one + or more certificates. + properties: + cert: + description: Cert is an optional PEM-encoded + public certificate. + type: string + certChain: + description: CertChain is an optional + PEM encoded set of certificates + used to verify. + type: string + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + type: object + keyless: + description: |- + Keyless is a set of attribute used to verify a Sigstore keyless attestor. + See https://github.com/sigstore/cosign/blob/main/KEYLESS.md. + properties: + additionalExtensions: + additionalProperties: + type: string + description: AdditionalExtensions + are certificate-extensions used + for keyless signing. + type: object + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + issuer: + description: Issuer is the certificate + issuer used for keyless signing. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + roots: + description: |- + Roots is an optional set of PEM encoded trusted root certificates. + If not provided, the system roots are used. + type: string + subject: + description: Subject is the verified + identity used for keyless signing, + for example the email address. + type: string + type: object + keys: + description: Keys specifies one or more + public keys. + properties: + ctlog: + description: |- + CTLog (certificate timestamp log) provides a configuration for validation of Signed Certificate + Timestamps (SCTs). If the value is unset, the default behavior by Cosign is used. + properties: + ignoreSCT: + description: |- + IgnoreSCT defines whether to use the Signed Certificate Timestamp (SCT) log to check for a certificate + timestamp. Default is false. Set to true if this was opted out during signing. + type: boolean + pubkey: + description: PubKey, if set, is + used to validate SCTs against + a custom source. + type: string + type: object + kms: + description: |- + KMS provides the URI to the public key stored in a Key Management System. See: + https://github.com/sigstore/cosign/blob/main/KMS.md + type: string + publicKeys: + description: |- + Keys is a set of X.509 public keys used to verify image signatures. The keys can be directly + specified or can be a variable reference to a key specified in a ConfigMap (see + https://kyverno.io/docs/writing-policies/variables/), or reference a standard Kubernetes Secret + elsewhere in the cluster by specifying it in the format "k8s:///". + The named Secret must specify a key `cosign.pub` containing the public key used for + verification, (see https://github.com/sigstore/cosign/blob/main/KMS.md#kubernetes-secret). + When multiple keys are specified each key is processed as a separate staticKey entry + (.attestors[*].entries.keys) within the set of attestors and the count is applied across the keys. + type: string + rekor: + description: |- + Rekor provides configuration for the Rekor transparency log service. If an empty object + is provided the public instance of Rekor (https://rekor.sigstore.dev) is used. + properties: + ignoreTlog: + description: IgnoreTlog skips + transparency log verification. + type: boolean + pubkey: + description: |- + RekorPubKey is an optional PEM-encoded public key to use for a custom Rekor. + If set, this will be used to validate transparency log signatures from a custom Rekor. + type: string + url: + description: URL is the address + of the transparency log. Defaults + to the public Rekor log instance + https://rekor.sigstore.dev. + type: string + type: object + secret: + description: Reference to a Secret + resource that contains a public + key + properties: + name: + description: Name of the secret. + The provided secret must contain + a key named cosign.pub. + type: string + namespace: + description: Namespace name where + the Secret exists. + type: string + required: + - name + - namespace + type: object + signatureAlgorithm: + default: sha256 + description: Specify signature algorithm + for public keys. Supported values + are sha224, sha256, sha384 and sha512. + type: string + type: object + repository: + description: |- + Repository is an optional alternate OCI repository to use for signatures and attestations that match this rule. + If specified Repository will override other OCI image repository locations for this Attestor. + type: string + type: object + type: array + type: object + type: array + image: + description: Deprecated. Use ImageReferences instead. + type: string + imageReferences: + description: |- + ImageReferences is a list of matching image reference patterns. At least one pattern in the + list must match the image for the rule to apply. Each image reference consists of a registry + address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + imageRegistryCredentials: + description: ImageRegistryCredentials provides credentials + that will be used for authentication with registry. + properties: + allowInsecureRegistry: + description: AllowInsecureRegistry allows insecure + access to a registry. + type: boolean + providers: + description: |- + Providers specifies a list of OCI Registry names, whose authentication providers are provided. + It can be of one of these values: default,google,azure,amazon,github. + items: + description: ImageRegistryCredentialsProvidersType + provides the list of credential providers + required. + enum: + - default + - amazon + - azure + - google + - github + type: string + type: array + secrets: + description: |- + Secrets specifies a list of secrets that are provided for credentials. + Secrets must live in the Kyverno namespace. + items: + type: string + type: array + type: object + issuer: + description: Deprecated. Use KeylessAttestor instead. + type: string + key: + description: Deprecated. Use StaticKeyAttestor instead. + type: string + mutateDigest: + default: true + description: |- + MutateDigest enables replacement of image tags with digests. + Defaults to true. + type: boolean + repository: + description: |- + Repository is an optional alternate OCI repository to use for image signatures and attestations that match this rule. + If specified Repository will override the default OCI image repository configured for the installation. + The repository can also be overridden per Attestor or Attestation. + type: string + required: + default: true + description: Required validates that images are verified + i.e. have matched passed a signature or attestation + check. + type: boolean + roots: + description: Deprecated. Use KeylessAttestor instead. + type: string + skipImageReferences: + description: |- + SkipImageReferences is a list of matching image reference patterns that should be skipped. + At least one pattern in the list must match the image for the rule to be skipped. Each image reference + consists of a registry address (defaults to docker.io), repository, image, and tag (defaults to latest). + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + subject: + description: Deprecated. Use KeylessAttestor instead. + type: string + type: + description: |- + Type specifies the method of signature validation. The allowed options + are Cosign and Notary. By default Cosign is used if a type is not specified. + enum: + - Cosign + - Notary + type: string + useCache: + default: true + description: UseCache enables caching of image verify + responses for this rule. + type: boolean + verifyDigest: + default: true + description: VerifyDigest validates that images have + a digest. + type: boolean + type: object + type: array + required: + - name + type: object + type: array + type: object + conditions: + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + ready: + description: Deprecated in favor of Conditions + type: boolean + rulecount: + description: |- + RuleCountStatus contains four variables which describes counts for + validate, generate, mutate and verify images rules + properties: + generate: + description: Count for generate rules in policy + type: integer + mutate: + description: Count for mutate rules in policy + type: integer + validate: + description: Count for validate rules in policy + type: integer + verifyimages: + description: Count for verify image rules in policy + type: integer + required: + - generate + - mutate + - validate + - verifyimages + type: object + validatingadmissionpolicy: + description: ValidatingAdmissionPolicy contains status information + properties: + generated: + description: Generated indicates whether a validating admission + policy is generated from the policy or not + type: boolean + message: + description: |- + Message is a human readable message indicating details about the generation of validating admission policy + It is an empty string when validating admission policy is successfully generated. + type: string + required: + - generated + - message + type: object + required: + - ready + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + status: {} +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_policyexceptions.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: policyexceptions.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: PolicyException + listKind: PolicyExceptionList + plural: policyexceptions + shortNames: + - polex + singular: policyexception + scope: Namespaced + versions: + - name: v2 + schema: + openAPIV3Schema: + description: PolicyException declares resources to be excluded from specified + policies. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy exception behaviors. + properties: + background: + description: |- + Background controls if exceptions are applied to existing policies during a background scan. + Optional. Default value is "true". The value must be set to "false" if the policy rule + uses variables that are only available in the admission review request (e.g. user name). + type: boolean + conditions: + description: |- + Conditions are used to determine if a resource applies to the exception by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + exceptions: + description: Exceptions is a list policy/rules to be excluded + items: + description: Exception stores infos about a policy and rules + properties: + policyName: + description: |- + PolicyName identifies the policy to which the exception is applied. + The policy name uses the format / unless it + references a ClusterPolicy. + type: string + ruleNames: + description: RuleNames identifies the rules to which the exception + is applied. + items: + type: string + type: array + required: + - policyName + - ruleNames + type: object + type: array + match: + description: Match defines match clause used to check if a resource + applies to the exception + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + podSecurity: + description: |- + PodSecurity specifies the Pod Security Standard controls to be excluded. + Applicable only to policies that have validate.podSecurity subrule. + items: + description: PodSecurityStandard specifies the Pod Security Standard + controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + required: + - exceptions + - match + type: object + required: + - spec + type: object + served: true + storage: false + - name: v2alpha1 + schema: + openAPIV3Schema: + description: PolicyException declares resources to be excluded from specified + policies. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy exception behaviors. + properties: + background: + description: |- + Background controls if exceptions are applied to existing policies during a background scan. + Optional. Default value is "true". The value must be set to "false" if the policy rule + uses variables that are only available in the admission review request (e.g. user name). + type: boolean + conditions: + description: |- + Conditions are used to determine if a resource applies to the exception by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + exceptions: + description: Exceptions is a list policy/rules to be excluded + items: + description: Exception stores infos about a policy and rules + properties: + policyName: + description: |- + PolicyName identifies the policy to which the exception is applied. + The policy name uses the format / unless it + references a ClusterPolicy. + type: string + ruleNames: + description: RuleNames identifies the rules to which the exception + is applied. + items: + type: string + type: array + required: + - policyName + - ruleNames + type: object + type: array + match: + description: Match defines match clause used to check if a resource + applies to the exception + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + podSecurity: + description: |- + PodSecurity specifies the Pod Security Standard controls to be excluded. + Applicable only to policies that have validate.podSecurity subrule. + items: + description: PodSecurityStandard specifies the Pod Security Standard + controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + required: + - exceptions + - match + type: object + required: + - spec + type: object + served: false + storage: false + - name: v2beta1 + schema: + openAPIV3Schema: + description: PolicyException declares resources to be excluded from specified + policies. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec declares policy exception behaviors. + properties: + background: + description: |- + Background controls if exceptions are applied to existing policies during a background scan. + Optional. Default value is "true". The value must be set to "false" if the policy rule + uses variables that are only available in the admission review request (e.g. user name). + type: boolean + conditions: + description: |- + Conditions are used to determine if a resource applies to the exception by evaluating a + set of conditions. The declaration can contain nested `any` or `all` statements. + properties: + all: + description: |- + AllConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, all of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + any: + description: |- + AnyConditions enable variable-based conditional rule execution. This is useful for + finer control of when an rule is applied. A condition can reference object data + using JMESPath notation. + Here, at least one of the conditions need to pass. + items: + properties: + key: + description: Key is the context entry (using JMESPath) for + conditional rule evaluation. + x-kubernetes-preserve-unknown-fields: true + message: + description: Message is an optional display message + type: string + operator: + description: |- + Operator is the conditional operation to perform. Valid operators are: + Equals, NotEquals, In, AnyIn, AllIn, NotIn, AnyNotIn, AllNotIn, GreaterThanOrEquals, + GreaterThan, LessThanOrEquals, LessThan, DurationGreaterThanOrEquals, DurationGreaterThan, + DurationLessThanOrEquals, DurationLessThan + enum: + - Equals + - NotEquals + - AnyIn + - AllIn + - AnyNotIn + - AllNotIn + - GreaterThanOrEquals + - GreaterThan + - LessThanOrEquals + - LessThan + - DurationGreaterThanOrEquals + - DurationGreaterThan + - DurationLessThanOrEquals + - DurationLessThan + type: string + value: + description: |- + Value is the conditional value, or set of values. The values can be fixed set + or can be variables declared using JMESPath. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + type: object + exceptions: + description: Exceptions is a list policy/rules to be excluded + items: + description: Exception stores infos about a policy and rules + properties: + policyName: + description: |- + PolicyName identifies the policy to which the exception is applied. + The policy name uses the format / unless it + references a ClusterPolicy. + type: string + ruleNames: + description: RuleNames identifies the rules to which the exception + is applied. + items: + type: string + type: array + required: + - policyName + - ruleNames + type: object + type: array + match: + description: Match defines match clause used to check if a resource + applies to the exception + properties: + all: + description: All allows specifying resources which will be ANDed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + any: + description: Any allows specifying resources which will be ORed + items: + description: ResourceFilter allow users to "AND" or "OR" between + resources + properties: + clusterRoles: + description: ClusterRoles is the list of cluster-wide role + names for the user. + items: + type: string + type: array + resources: + description: ResourceDescription contains information about + the resource being created or modified. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations is a map of annotations (key-value pairs of type string). Annotation keys + and values support the wildcard characters "*" (matches zero or many characters) and + "?" (matches at least one character). + type: object + kinds: + description: Kinds is a list of resource kinds. + items: + type: string + type: array + name: + description: |- + Name is the name of the resource. The name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + NOTE: "Name" is being deprecated in favor of "Names". + type: string + names: + description: |- + Names are the names of the resources. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + namespaceSelector: + description: |- + NamespaceSelector is a label selector for the resource namespace. Label keys and values + in `matchLabels` support the wildcard characters `*` (matches zero or many characters) + and `?` (matches one character).Wildcards allows writing label selectors like + ["storage.k8s.io/*": "*"]. Note that using ["*" : "*"] matches any key and value but + does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + description: |- + Namespaces is a list of namespaces names. Each name supports wildcard characters + "*" (matches zero or many characters) and "?" (at least one character). + items: + type: string + type: array + operations: + description: Operations can contain values ["CREATE, + "UPDATE", "CONNECT", "DELETE"], which are used to + match a specific action. + items: + description: AdmissionOperation can have one of the + values CREATE, UPDATE, CONNECT, DELETE, which are + used to match a specific action. + enum: + - CREATE + - CONNECT + - UPDATE + - DELETE + type: string + type: array + selector: + description: |- + Selector is a label selector. Label keys and values in `matchLabels` support the wildcard + characters `*` (matches zero or many characters) and `?` (matches one character). + Wildcards allows writing label selectors like ["storage.k8s.io/*": "*"]. Note that + using ["*" : "*"] matches any key and value but does not match an empty label set. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + roles: + description: Roles is the list of namespaced role names + for the user. + items: + type: string + type: array + subjects: + description: Subjects is the list of subject names like + users, user groups, and service accounts. + items: + description: |- + Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, + or a value for non-objects such as user and group names. + properties: + apiGroup: + description: |- + APIGroup holds the API group of the referenced subject. + Defaults to "" for ServiceAccount subjects. + Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + type: string + kind: + description: |- + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + If the Authorizer does not recognized the kind value, the Authorizer should report an error. + type: string + name: + description: Name of the object being referenced. + type: string + namespace: + description: |- + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + the Authorizer should report an error. + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + type: object + type: array + type: object + podSecurity: + description: |- + PodSecurity specifies the Pod Security Standard controls to be excluded. + Applicable only to policies that have validate.podSecurity subrule. + items: + description: PodSecurityStandard specifies the Pod Security Standard + controls to be excluded. + properties: + controlName: + description: |- + ControlName specifies the name of the Pod Security Standard control. + See: https://kubernetes.io/docs/concepts/security/pod-security-standards/ + enum: + - HostProcess + - Host Namespaces + - Privileged Containers + - Capabilities + - HostPath Volumes + - Host Ports + - AppArmor + - SELinux + - /proc Mount Type + - Seccomp + - Sysctls + - Volume Types + - Privilege Escalation + - Running as Non-root + - Running as Non-root user + type: string + images: + description: |- + Images selects matching containers and applies the container level PSS. + Each image is the image name consisting of the registry address, repository, image, and tag. + Empty list matches no containers, PSS checks are applied at the pod level only. + Wildcards ('*' and '?') are allowed. See: https://kubernetes.io/docs/concepts/containers/images. + items: + type: string + type: array + restrictedField: + description: |- + RestrictedField selects the field for the given Pod Security Standard control. + When not set, all restricted fields for the control are selected. + type: string + values: + description: Values defines the allowed values that can be excluded. + items: + type: string + type: array + required: + - controlName + type: object + type: array + required: + - exceptions + - match + type: object + required: + - spec + type: object + served: true + storage: true +--- +# Source: kyverno/charts/crds/templates/kyverno.io/kyverno.io_updaterequests.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: updaterequests.kyverno.io +spec: + group: kyverno.io + names: + categories: + - kyverno + kind: UpdateRequest + listKind: UpdateRequestList + plural: updaterequests + shortNames: + - ur + singular: updaterequest + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.policy + name: Policy + type: string + - jsonPath: .spec.requestType + name: RuleType + type: string + - jsonPath: .spec.resource.kind + name: ResourceKind + type: string + - jsonPath: .spec.resource.name + name: ResourceName + type: string + - jsonPath: .spec.resource.namespace + name: ResourceNamespace + type: string + - jsonPath: .status.state + name: status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: UpdateRequest is a request to process mutate and generate rules + in background. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ResourceSpec is the information to identify the trigger resource. + properties: + context: + description: Context ... + properties: + admissionRequestInfo: + description: AdmissionRequestInfoObject stores the admission request + and operation details + properties: + admissionRequest: + description: AdmissionRequest describes the admission.Attributes + for the admission request. + properties: + dryRun: + description: |- + DryRun indicates that modifications will definitely not be persisted for this request. + Defaults to false. + type: boolean + kind: + description: Kind is the fully-qualified type of object + being submitted (for example, v1.Pod or autoscaling.v1.Scale) + properties: + group: + type: string + kind: + type: string + version: + type: string + required: + - group + - kind + - version + type: object + name: + description: |- + Name is the name of the object as presented in the request. On a CREATE operation, the client may omit name and + rely on the server to generate the name. If that is the case, this field will contain an empty string. + type: string + namespace: + description: Namespace is the namespace associated with + the request (if any). + type: string + object: + description: Object is the object from the incoming request. + type: object + x-kubernetes-preserve-unknown-fields: true + oldObject: + description: OldObject is the existing object. Only populated + for DELETE and UPDATE requests. + type: object + x-kubernetes-preserve-unknown-fields: true + operation: + description: |- + Operation is the operation being performed. This may be different than the operation + requested. e.g. a patch can result in either a CREATE or UPDATE Operation. + type: string + options: + description: |- + Options is the operation option structure of the operation being performed. + e.g. `meta.k8s.io/v1.DeleteOptions` or `meta.k8s.io/v1.CreateOptions`. This may be + different than the options the caller provided. e.g. for a patch request the performed + Operation might be a CREATE, in which case the Options will a + `meta.k8s.io/v1.CreateOptions` even though the caller provided `meta.k8s.io/v1.PatchOptions`. + type: object + x-kubernetes-preserve-unknown-fields: true + requestKind: + description: |- + RequestKind is the fully-qualified type of the original API request (for example, v1.Pod or autoscaling.v1.Scale). + If this is specified and differs from the value in "kind", an equivalent match and conversion was performed. + + + For example, if deployments can be modified via apps/v1 and apps/v1beta1, and a webhook registered a rule of + `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]` and `matchPolicy: Equivalent`, + an API request to apps/v1beta1 deployments would be converted and sent to the webhook + with `kind: {group:"apps", version:"v1", kind:"Deployment"}` (matching the rule the webhook registered for), + and `requestKind: {group:"apps", version:"v1beta1", kind:"Deployment"}` (indicating the kind of the original API request). + + + See documentation for the "matchPolicy" field in the webhook configuration type for more details. + properties: + group: + type: string + kind: + type: string + version: + type: string + required: + - group + - kind + - version + type: object + requestResource: + description: |- + RequestResource is the fully-qualified resource of the original API request (for example, v1.pods). + If this is specified and differs from the value in "resource", an equivalent match and conversion was performed. + + + For example, if deployments can be modified via apps/v1 and apps/v1beta1, and a webhook registered a rule of + `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]` and `matchPolicy: Equivalent`, + an API request to apps/v1beta1 deployments would be converted and sent to the webhook + with `resource: {group:"apps", version:"v1", resource:"deployments"}` (matching the resource the webhook registered for), + and `requestResource: {group:"apps", version:"v1beta1", resource:"deployments"}` (indicating the resource of the original API request). + + + See documentation for the "matchPolicy" field in the webhook configuration type. + properties: + group: + type: string + resource: + type: string + version: + type: string + required: + - group + - resource + - version + type: object + requestSubResource: + description: |- + RequestSubResource is the name of the subresource of the original API request, if any (for example, "status" or "scale") + If this is specified and differs from the value in "subResource", an equivalent match and conversion was performed. + See documentation for the "matchPolicy" field in the webhook configuration type. + type: string + resource: + description: Resource is the fully-qualified resource + being requested (for example, v1.pods) + properties: + group: + type: string + resource: + type: string + version: + type: string + required: + - group + - resource + - version + type: object + subResource: + description: SubResource is the subresource being requested, + if any (for example, "status" or "scale") + type: string + uid: + description: |- + UID is an identifier for the individual request/response. It allows us to distinguish instances of requests which are + otherwise identical (parallel requests, requests when earlier requests did not modify etc) + The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request. + It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging. + type: string + userInfo: + description: UserInfo is information about the requesting + user + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf + can generate + items: + type: string + type: array + description: Any additional information provided by + the authenticator. + type: object + groups: + description: The names of groups this user is a part + of. + items: + type: string + type: array + uid: + description: |- + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. + type: string + username: + description: The name that uniquely identifies this + user among all active users. + type: string + type: object + required: + - kind + - operation + - resource + - uid + - userInfo + type: object + operation: + description: Operation is the type of resource operation being + checked for admission control + type: string + type: object + userInfo: + description: RequestInfo contains permission info carried in an + admission request. + properties: + clusterRoles: + description: ClusterRoles is a list of possible clusterRoles + send the request. + items: + type: string + nullable: true + type: array + roles: + description: Roles is a list of possible role send the request. + items: + type: string + nullable: true + type: array + userInfo: + description: UserInfo is the userInfo carried in the admission + request. + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf + can generate + items: + type: string + type: array + description: Any additional information provided by the + authenticator. + type: object + groups: + description: The names of groups this user is a part of. + items: + type: string + type: array + uid: + description: |- + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. + type: string + username: + description: The name that uniquely identifies this user + among all active users. + type: string + type: object + type: object + type: object + deleteDownstream: + description: DeleteDownstream represents whether the downstream needs + to be deleted. + type: boolean + policy: + description: Specifies the name of the policy. + type: string + requestType: + description: Type represents request type for background processing + enum: + - mutate + - generate + type: string + resource: + description: ResourceSpec is the information to identify the trigger + resource. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + uid: + description: UID specifies the resource uid. + type: string + type: object + rule: + description: Rule is the associate rule name of the current UR. + type: string + synchronize: + description: |- + Synchronize represents the sync behavior of the corresponding rule + Optional. Defaults to "false" if not specified. + type: boolean + required: + - context + - deleteDownstream + - policy + - resource + - rule + type: object + status: + description: Status contains statistics related to update request. + properties: + generatedResources: + description: |- + This will track the resources that are updated by the generate Policy. + Will be used during clean up resources. + items: + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + handler: + description: Deprecated + type: string + message: + description: Specifies request status message. + type: string + retryCount: + type: integer + state: + description: State represents state of the update request. + type: string + required: + - state + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.policy + name: Policy + type: string + - jsonPath: .spec.requestType + name: RuleType + type: string + - jsonPath: .spec.resource.kind + name: ResourceKind + type: string + - jsonPath: .spec.resource.name + name: ResourceName + type: string + - jsonPath: .spec.resource.namespace + name: ResourceNamespace + type: string + - jsonPath: .status.state + name: status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2 + schema: + openAPIV3Schema: + description: UpdateRequest is a request to process mutate and generate rules + in background. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ResourceSpec is the information to identify the trigger resource. + properties: + context: + description: Context ... + properties: + admissionRequestInfo: + description: AdmissionRequestInfoObject stores the admission request + and operation details + properties: + admissionRequest: + description: AdmissionRequest describes the admission.Attributes + for the admission request. + properties: + dryRun: + description: |- + DryRun indicates that modifications will definitely not be persisted for this request. + Defaults to false. + type: boolean + kind: + description: Kind is the fully-qualified type of object + being submitted (for example, v1.Pod or autoscaling.v1.Scale) + properties: + group: + type: string + kind: + type: string + version: + type: string + required: + - group + - kind + - version + type: object + name: + description: |- + Name is the name of the object as presented in the request. On a CREATE operation, the client may omit name and + rely on the server to generate the name. If that is the case, this field will contain an empty string. + type: string + namespace: + description: Namespace is the namespace associated with + the request (if any). + type: string + object: + description: Object is the object from the incoming request. + type: object + x-kubernetes-preserve-unknown-fields: true + oldObject: + description: OldObject is the existing object. Only populated + for DELETE and UPDATE requests. + type: object + x-kubernetes-preserve-unknown-fields: true + operation: + description: |- + Operation is the operation being performed. This may be different than the operation + requested. e.g. a patch can result in either a CREATE or UPDATE Operation. + type: string + options: + description: |- + Options is the operation option structure of the operation being performed. + e.g. `meta.k8s.io/v1.DeleteOptions` or `meta.k8s.io/v1.CreateOptions`. This may be + different than the options the caller provided. e.g. for a patch request the performed + Operation might be a CREATE, in which case the Options will a + `meta.k8s.io/v1.CreateOptions` even though the caller provided `meta.k8s.io/v1.PatchOptions`. + type: object + x-kubernetes-preserve-unknown-fields: true + requestKind: + description: |- + RequestKind is the fully-qualified type of the original API request (for example, v1.Pod or autoscaling.v1.Scale). + If this is specified and differs from the value in "kind", an equivalent match and conversion was performed. + + + For example, if deployments can be modified via apps/v1 and apps/v1beta1, and a webhook registered a rule of + `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]` and `matchPolicy: Equivalent`, + an API request to apps/v1beta1 deployments would be converted and sent to the webhook + with `kind: {group:"apps", version:"v1", kind:"Deployment"}` (matching the rule the webhook registered for), + and `requestKind: {group:"apps", version:"v1beta1", kind:"Deployment"}` (indicating the kind of the original API request). + + + See documentation for the "matchPolicy" field in the webhook configuration type for more details. + properties: + group: + type: string + kind: + type: string + version: + type: string + required: + - group + - kind + - version + type: object + requestResource: + description: |- + RequestResource is the fully-qualified resource of the original API request (for example, v1.pods). + If this is specified and differs from the value in "resource", an equivalent match and conversion was performed. + + + For example, if deployments can be modified via apps/v1 and apps/v1beta1, and a webhook registered a rule of + `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]` and `matchPolicy: Equivalent`, + an API request to apps/v1beta1 deployments would be converted and sent to the webhook + with `resource: {group:"apps", version:"v1", resource:"deployments"}` (matching the resource the webhook registered for), + and `requestResource: {group:"apps", version:"v1beta1", resource:"deployments"}` (indicating the resource of the original API request). + + + See documentation for the "matchPolicy" field in the webhook configuration type. + properties: + group: + type: string + resource: + type: string + version: + type: string + required: + - group + - resource + - version + type: object + requestSubResource: + description: |- + RequestSubResource is the name of the subresource of the original API request, if any (for example, "status" or "scale") + If this is specified and differs from the value in "subResource", an equivalent match and conversion was performed. + See documentation for the "matchPolicy" field in the webhook configuration type. + type: string + resource: + description: Resource is the fully-qualified resource + being requested (for example, v1.pods) + properties: + group: + type: string + resource: + type: string + version: + type: string + required: + - group + - resource + - version + type: object + subResource: + description: SubResource is the subresource being requested, + if any (for example, "status" or "scale") + type: string + uid: + description: |- + UID is an identifier for the individual request/response. It allows us to distinguish instances of requests which are + otherwise identical (parallel requests, requests when earlier requests did not modify etc) + The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request. + It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging. + type: string + userInfo: + description: UserInfo is information about the requesting + user + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf + can generate + items: + type: string + type: array + description: Any additional information provided by + the authenticator. + type: object + groups: + description: The names of groups this user is a part + of. + items: + type: string + type: array + uid: + description: |- + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. + type: string + username: + description: The name that uniquely identifies this + user among all active users. + type: string + type: object + required: + - kind + - operation + - resource + - uid + - userInfo + type: object + operation: + description: Operation is the type of resource operation being + checked for admission control + type: string + type: object + userInfo: + description: RequestInfo contains permission info carried in an + admission request. + properties: + clusterRoles: + description: ClusterRoles is a list of possible clusterRoles + send the request. + items: + type: string + nullable: true + type: array + roles: + description: Roles is a list of possible role send the request. + items: + type: string + nullable: true + type: array + userInfo: + description: UserInfo is the userInfo carried in the admission + request. + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf + can generate + items: + type: string + type: array + description: Any additional information provided by the + authenticator. + type: object + groups: + description: The names of groups this user is a part of. + items: + type: string + type: array + uid: + description: |- + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. + type: string + username: + description: The name that uniquely identifies this user + among all active users. + type: string + type: object + type: object + type: object + deleteDownstream: + description: DeleteDownstream represents whether the downstream needs + to be deleted. + type: boolean + policy: + description: Specifies the name of the policy. + type: string + requestType: + description: Type represents request type for background processing + enum: + - mutate + - generate + type: string + resource: + description: ResourceSpec is the information to identify the trigger + resource. + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + uid: + description: UID specifies the resource uid. + type: string + type: object + rule: + description: Rule is the associate rule name of the current UR. + type: string + synchronize: + description: |- + Synchronize represents the sync behavior of the corresponding rule + Optional. Defaults to "false" if not specified. + type: boolean + required: + - context + - deleteDownstream + - policy + - resource + - rule + type: object + status: + description: Status contains statistics related to update request. + properties: + generatedResources: + description: |- + This will track the resources that are updated by the generate Policy. + Will be used during clean up resources. + items: + properties: + apiVersion: + description: APIVersion specifies resource apiVersion. + type: string + kind: + description: Kind specifies resource kind. + type: string + name: + description: Name specifies the resource name. + type: string + namespace: + description: Namespace specifies resource namespace. + type: string + uid: + description: UID specifies the resource uid. + type: string + type: object + type: array + message: + description: Specifies request status message. + type: string + retryCount: + type: integer + state: + description: State represents state of the update request. + type: string + required: + - state + type: object + type: object + served: true + storage: false + subresources: + status: {} +--- +# Source: kyverno/charts/crds/templates/reports.kyverno.io/reports.kyverno.io_clusterephemeralreports.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: clusterephemeralreports.reports.kyverno.io +spec: + group: reports.kyverno.io + names: + categories: + - kyverno + kind: ClusterEphemeralReport + listKind: ClusterEphemeralReportList + plural: clusterephemeralreports + shortNames: + - cephr + singular: clusterephemeralreport + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.labels['audit\.kyverno\.io/source'] + name: Source + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.group'] + name: Group + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.kind'] + name: Kind + type: string + - jsonPath: .metadata.annotations['audit\.kyverno\.io/resource\.name'] + name: Owner + type: string + - jsonPath: .spec.summary.pass + name: Pass + type: integer + - jsonPath: .spec.summary.fail + name: Fail + type: integer + - jsonPath: .spec.summary.warn + name: Warn + type: integer + - jsonPath: .spec.summary.error + name: Error + type: integer + - jsonPath: .spec.summary.skip + name: Skip + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.uid'] + name: Uid + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.hash'] + name: Hash + priority: 1 + type: string + name: v1 + schema: + openAPIV3Schema: + description: ClusterEphemeralReport is the Schema for the ClusterEphemeralReports + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + owner: + description: Owner is a reference to the report owner (e.g. a Deployment, + Namespace, or Node) + properties: + apiVersion: + description: API version of the referent. + type: string + blockOwnerDeletion: + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. + type: boolean + controller: + description: If true, this reference points to the managing controller. + type: boolean + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + required: + - owner + type: object + required: + - spec + type: object + served: true + storage: true + subresources: {} +--- +# Source: kyverno/charts/crds/templates/reports.kyverno.io/reports.kyverno.io_ephemeralreports.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: ephemeralreports.reports.kyverno.io +spec: + group: reports.kyverno.io + names: + categories: + - kyverno + kind: EphemeralReport + listKind: EphemeralReportList + plural: ephemeralreports + shortNames: + - ephr + singular: ephemeralreport + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.labels['audit\.kyverno\.io/source'] + name: Source + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.group'] + name: Group + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.kind'] + name: Kind + type: string + - jsonPath: .metadata.annotations['audit\.kyverno\.io/resource\.name'] + name: Owner + type: string + - jsonPath: .spec.summary.pass + name: Pass + type: integer + - jsonPath: .spec.summary.fail + name: Fail + type: integer + - jsonPath: .spec.summary.warn + name: Warn + type: integer + - jsonPath: .spec.summary.error + name: Error + type: integer + - jsonPath: .spec.summary.skip + name: Skip + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.uid'] + name: Uid + priority: 1 + type: string + - jsonPath: .metadata.labels['audit\.kyverno\.io/resource\.hash'] + name: Hash + priority: 1 + type: string + name: v1 + schema: + openAPIV3Schema: + description: EphemeralReport is the Schema for the EphemeralReports API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + properties: + owner: + description: Owner is a reference to the report owner (e.g. a Deployment, + Namespace, or Node) + properties: + apiVersion: + description: API version of the referent. + type: string + blockOwnerDeletion: + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. + type: boolean + controller: + description: If true, this reference points to the managing controller. + type: boolean + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for + the policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for + the policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked + Kubernetes resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule + execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within + the policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not + be evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not + selected for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + required: + - owner + type: object + required: + - spec + type: object + served: true + storage: true + subresources: {} +--- +# Source: kyverno/charts/crds/templates/wgpolicyk8s.io/wgpolicyk8s.io_clusterpolicyreports.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: clusterpolicyreports.wgpolicyk8s.io +spec: + group: wgpolicyk8s.io + names: + kind: ClusterPolicyReport + listKind: ClusterPolicyReportList + plural: clusterpolicyreports + shortNames: + - cpolr + singular: clusterpolicyreport + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .scope.kind + name: Kind + type: string + - jsonPath: .scope.name + name: Name + type: string + - jsonPath: .summary.pass + name: Pass + type: integer + - jsonPath: .summary.fail + name: Fail + type: integer + - jsonPath: .summary.warn + name: Warn + type: integer + - jsonPath: .summary.error + name: Error + type: integer + - jsonPath: .summary.skip + name: Skip + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha2 + schema: + openAPIV3Schema: + description: ClusterPolicyReport is the Schema for the clusterpolicyreports + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for the + policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for the + policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked Kubernetes + resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within the + policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + scope: + description: Scope is an optional reference to the report scope (e.g. + a Deployment, Namespace, or Node) + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + scopeSelector: + description: |- + ScopeSelector is an optional selector for multiple scopes (e.g. Pods). + Either one of, or none of, but not both of, Scope or ScopeSelector should be specified. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not be + evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not selected + for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + type: object + served: true + storage: true + subresources: {} +--- +# Source: kyverno/charts/crds/templates/wgpolicyk8s.io/wgpolicyk8s.io_policyreports.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: crds + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno-crds + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: crds-3.2.4 + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: policyreports.wgpolicyk8s.io +spec: + group: wgpolicyk8s.io + names: + kind: PolicyReport + listKind: PolicyReportList + plural: policyreports + shortNames: + - polr + singular: policyreport + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .scope.kind + name: Kind + type: string + - jsonPath: .scope.name + name: Name + type: string + - jsonPath: .summary.pass + name: Pass + type: integer + - jsonPath: .summary.fail + name: Fail + type: integer + - jsonPath: .summary.warn + name: Warn + type: integer + - jsonPath: .summary.error + name: Error + type: integer + - jsonPath: .summary.skip + name: Skip + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha2 + schema: + openAPIV3Schema: + description: PolicyReport is the Schema for the policyreports API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + results: + description: PolicyReportResult provides result details + items: + description: PolicyReportResult provides the result for an individual + policy + properties: + category: + description: Category indicates policy category + type: string + message: + description: Description is a short user friendly message for the + policy rule + type: string + policy: + description: Policy is the name or identifier of the policy + type: string + properties: + additionalProperties: + type: string + description: Properties provides additional information for the + policy rule + type: object + resourceSelector: + description: |- + SubjectSelector is an optional label selector for checked Kubernetes resources. + For example, a policy result may apply to all pods that match a label. + Either a Subject or a SubjectSelector can be specified. + If neither are provided, the result is assumed to be for the policy report scope. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + resources: + description: Subjects is an optional reference to the checked Kubernetes + resources + items: + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + type: array + result: + description: Result indicates the outcome of the policy rule execution + enum: + - pass + - fail + - warn + - error + - skip + type: string + rule: + description: Rule is the name or identifier of the rule within the + policy + type: string + scored: + description: Scored indicates if this result is scored + type: boolean + severity: + description: Severity indicates policy check result criticality + enum: + - critical + - high + - low + - medium + - info + type: string + source: + description: Source is an identifier for the policy engine that + manages this report + type: string + timestamp: + description: Timestamp indicates the time the result was found + properties: + nanos: + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. This field may be limited in precision depending on context. + format: int32 + type: integer + seconds: + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + format: int64 + type: integer + required: + - nanos + - seconds + type: object + required: + - policy + type: object + type: array + scope: + description: Scope is an optional reference to the report scope (e.g. + a Deployment, Namespace, or Node) + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + scopeSelector: + description: |- + ScopeSelector is an optional selector for multiple scopes (e.g. Pods). + Either one of, or none of, but not both of, Scope or ScopeSelector should be specified. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + summary: + description: PolicyReportSummary provides a summary of results + properties: + error: + description: Error provides the count of policies that could not be + evaluated + type: integer + fail: + description: Fail provides the count of policies whose requirements + were not met + type: integer + pass: + description: Pass provides the count of policies whose requirements + were met + type: integer + skip: + description: Skip indicates the count of policies that were not selected + for evaluation + type: integer + warn: + description: Warn provides the count of non-scored policies whose + requirements were not met + type: integer + type: object + type: object + served: true + storage: true + subresources: {} +--- +# Source: kyverno/templates/admission-controller/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:admission-controller + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +aggregationRule: + clusterRoleSelectors: + - matchLabels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno +--- +# Source: kyverno/templates/admission-controller/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:admission-controller:core + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + - validatingwebhookconfigurations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - clusterroles + - rolebindings + - clusterrolebindings + verbs: + - list + - watch + - apiGroups: + - kyverno.io + resources: + - policies + - policies/status + - clusterpolicies + - clusterpolicies/status + - updaterequests + - updaterequests/status + - globalcontextentries + - globalcontextentries/status + - admissionreports + - clusteradmissionreports + - backgroundscanreports + - clusterbackgroundscanreports + - policyexceptions + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - reports.kyverno.io + resources: + - ephemeralreports + - clusterephemeralreports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - wgpolicyk8s.io + resources: + - policyreports + - policyreports/status + - clusterpolicyreports + - clusterpolicyreports/status + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - '' + - events.k8s.io + resources: + - events + verbs: + - create + - update + - patch + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + - apiGroups: + - '' + resources: + - configmaps + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - update + - patch + - get + - list + - watch + - apiGroups: + - '*' + resources: + - '*' + verbs: + - get + - list + - watch +--- +# Source: kyverno/templates/background-controller/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:background-controller + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +aggregationRule: + clusterRoleSelectors: + - matchLabels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno +--- +# Source: kyverno/templates/background-controller/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:background-controller:core + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - apiGroups: + - kyverno.io + resources: + - policies + - clusterpolicies + - policyexceptions + - updaterequests + - updaterequests/status + - globalcontextentries + - globalcontextentries/status + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - '' + resources: + - namespaces + - configmaps + verbs: + - get + - list + - watch + - apiGroups: + - '' + - events.k8s.io + resources: + - events + verbs: + - create + - get + - list + - patch + - update + - watch + - apiGroups: + - '*' + resources: + - '*' + verbs: + - get + - list + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingresses + - ingressclasses + - networkpolicies + verbs: + - create + - update + - patch + - delete + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + - roles + verbs: + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - configmaps + - secrets + - resourcequotas + - limitranges + verbs: + - create + - update + - patch + - delete +--- +# Source: kyverno/templates/cleanup-controller/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:cleanup-controller + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +aggregationRule: + clusterRoleSelectors: + - matchLabels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno +--- +# Source: kyverno/templates/cleanup-controller/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:cleanup-controller:core + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - apiGroups: + - admissionregistration.k8s.io + resources: + - validatingwebhookconfigurations + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - '' + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - kyverno.io + resources: + - clustercleanuppolicies + - cleanuppolicies + verbs: + - list + - watch + - apiGroups: + - kyverno.io + resources: + - globalcontextentries + - globalcontextentries/status + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - kyverno.io + resources: + - clustercleanuppolicies/status + - cleanuppolicies/status + verbs: + - update + - apiGroups: + - '' + resources: + - configmaps + verbs: + - get + - list + - watch + - apiGroups: + - '' + - events.k8s.io + resources: + - events + verbs: + - create + - patch + - update + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create +--- +# Source: kyverno/templates/cleanup/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:cleanup-jobs + labels: + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +rules: + - apiGroups: + - kyverno.io + resources: + - admissionreports + - clusteradmissionreports + - updaterequests + verbs: + - list + - deletecollection + - delete + - apiGroups: + - reports.kyverno.io + resources: + - ephemeralreports + - clusterephemeralreports + verbs: + - list + - deletecollection + - delete +--- +# Source: kyverno/templates/rbac/policies.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:rbac:admin:policies + labels: + app.kubernetes.io/component: rbac + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + rbac.authorization.k8s.io/aggregate-to-admin: "true" +rules: + - apiGroups: + - kyverno.io + resources: + - cleanuppolicies + - clustercleanuppolicies + - policies + - clusterpolicies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +--- +# Source: kyverno/templates/rbac/policies.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:rbac:view:policies + labels: + app.kubernetes.io/component: rbac + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + rbac.authorization.k8s.io/aggregate-to-view: "true" +rules: + - apiGroups: + - kyverno.io + resources: + - cleanuppolicies + - clustercleanuppolicies + - policies + - clusterpolicies + verbs: + - get + - list + - watch +--- +# Source: kyverno/templates/rbac/policyreports.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:rbac:admin:policyreports + labels: + app.kubernetes.io/component: rbac + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + rbac.authorization.k8s.io/aggregate-to-admin: "true" +rules: + - apiGroups: + - wgpolicyk8s.io + resources: + - policyreports + - clusterpolicyreports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +--- +# Source: kyverno/templates/rbac/policyreports.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:rbac:view:policyreports + labels: + app.kubernetes.io/component: rbac + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + rbac.authorization.k8s.io/aggregate-to-view: "true" +rules: + - apiGroups: + - wgpolicyk8s.io + resources: + - policyreports + - clusterpolicyreports + verbs: + - get + - list + - watch +--- +# Source: kyverno/templates/rbac/reports.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:rbac:admin:reports + labels: + app.kubernetes.io/component: rbac + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + rbac.authorization.k8s.io/aggregate-to-admin: "true" +rules: + - apiGroups: + - kyverno.io + resources: + - admissionreports + - clusteradmissionreports + - backgroundscanreports + - clusterbackgroundscanreports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - reports.kyverno.io + resources: + - ephemeralreports + - clusterephemeralreports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +--- +# Source: kyverno/templates/rbac/reports.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:rbac:view:reports + labels: + app.kubernetes.io/component: rbac + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + rbac.authorization.k8s.io/aggregate-to-view: "true" +rules: + - apiGroups: + - kyverno.io + resources: + - admissionreports + - clusteradmissionreports + - backgroundscanreports + - clusterbackgroundscanreports + verbs: + - get + - list + - watch + - apiGroups: + - reports.kyverno.io + resources: + - ephemeralreports + - clusterephemeralreports + verbs: + - get + - list + - watch +--- +# Source: kyverno/templates/rbac/updaterequests.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:rbac:admin:updaterequests + labels: + app.kubernetes.io/component: rbac + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + rbac.authorization.k8s.io/aggregate-to-admin: "true" +rules: + - apiGroups: + - kyverno.io + resources: + - updaterequests + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +--- +# Source: kyverno/templates/rbac/updaterequests.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:rbac:view:updaterequests + labels: + app.kubernetes.io/component: rbac + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + rbac.authorization.k8s.io/aggregate-to-view: "true" +rules: + - apiGroups: + - kyverno.io + resources: + - updaterequests + verbs: + - get + - list + - watch +--- +# Source: kyverno/templates/reports-controller/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:reports-controller + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +aggregationRule: + clusterRoleSelectors: + - matchLabels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno +--- +# Source: kyverno/templates/reports-controller/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kyverno:reports-controller:core + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - apiGroups: + - '' + resources: + - secrets + - configmaps + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - kyverno.io + resources: + - globalcontextentries + - globalcontextentries/status + - admissionreports + - clusteradmissionreports + - backgroundscanreports + - clusterbackgroundscanreports + - policyexceptions + - policies + - clusterpolicies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - reports.kyverno.io + resources: + - ephemeralreports + - clusterephemeralreports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - wgpolicyk8s.io + resources: + - policyreports + - policyreports/status + - clusterpolicyreports + - clusterpolicyreports/status + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - deletecollection + - apiGroups: + - '' + - events.k8s.io + resources: + - events + verbs: + - create + - patch + - apiGroups: + - '*' + resources: + - '*' + verbs: + - get + - list + - watch +--- +# Source: kyverno/templates/admission-controller/clusterrolebinding.yaml +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:admission-controller + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kyverno:admission-controller +subjects: + - kind: ServiceAccount + name: kyverno-admission-controller + namespace: kyverno +--- +# Source: kyverno/templates/background-controller/clusterrolebinding.yaml +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:background-controller + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kyverno:background-controller +subjects: +- kind: ServiceAccount + name: kyverno-background-controller + namespace: kyverno +--- +# Source: kyverno/templates/cleanup-controller/clusterrolebinding.yaml +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:cleanup-controller + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kyverno:cleanup-controller +subjects: +- kind: ServiceAccount + name: kyverno-cleanup-controller + namespace: kyverno +--- +# Source: kyverno/templates/cleanup/clusterrolebinding.yaml +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:cleanup-jobs + labels: + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kyverno:cleanup-jobs +subjects: + - kind: ServiceAccount + name: kyverno-cleanup-jobs + namespace: kyverno +--- +# Source: kyverno/templates/reports-controller/clusterrolebinding.yaml +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:reports-controller + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kyverno:reports-controller +subjects: +- kind: ServiceAccount + name: kyverno-reports-controller + namespace: kyverno +--- +# Source: kyverno/templates/admission-controller/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: kyverno:admission-controller + namespace: kyverno + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +rules: + - apiGroups: + - '' + resources: + - secrets + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - '' + resources: + - configmaps + verbs: + - get + - list + - watch + resourceNames: + - kyverno + - kyverno-metrics + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - delete + - get + - patch + - update + # Allow update of Kyverno deployment annotations + - apiGroups: + - apps + resources: + - deployments + - deployments/scale + verbs: + - get + - list + - watch + - patch + - update +--- +# Source: kyverno/templates/background-controller/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: kyverno:background-controller + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + namespace: kyverno +rules: + - apiGroups: + - '' + resources: + - configmaps + verbs: + - get + - list + - watch + resourceNames: + - kyverno + - kyverno-metrics + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - delete + - get + - patch + - update + resourceNames: + - kyverno-background-controller + - apiGroups: + - '' + resources: + - secrets + verbs: + - get + - list + - watch +--- +# Source: kyverno/templates/cleanup-controller/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: kyverno:cleanup-controller + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + namespace: kyverno +rules: + - apiGroups: + - '' + resources: + - secrets + verbs: + - create + - apiGroups: + - '' + resources: + - secrets + verbs: + - delete + - get + - list + - update + - watch + resourceNames: + - kyverno-cleanup-controller.kyverno.svc.kyverno-tls-ca + - kyverno-cleanup-controller.kyverno.svc.kyverno-tls-pair + - apiGroups: + - '' + resources: + - configmaps + verbs: + - get + - list + - watch + resourceNames: + - kyverno + - kyverno-metrics + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - delete + - get + - patch + - update + resourceNames: + - kyverno-cleanup-controller +--- +# Source: kyverno/templates/reports-controller/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: kyverno:reports-controller + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + namespace: kyverno +rules: + - apiGroups: + - '' + resources: + - configmaps + verbs: + - get + - list + - watch + resourceNames: + - kyverno + - kyverno-metrics + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - delete + - get + - patch + - update + resourceNames: + - kyverno-reports-controller +--- +# Source: kyverno/templates/admission-controller/rolebinding.yaml +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:admission-controller + namespace: kyverno + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kyverno:admission-controller +subjects: + - kind: ServiceAccount + name: kyverno-admission-controller + namespace: kyverno +--- +# Source: kyverno/templates/background-controller/rolebinding.yaml +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:background-controller + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + namespace: kyverno +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kyverno:background-controller +subjects: + - kind: ServiceAccount + name: kyverno-background-controller + namespace: kyverno +--- +# Source: kyverno/templates/cleanup-controller/rolebinding.yaml +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:cleanup-controller + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + namespace: kyverno +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kyverno:cleanup-controller +subjects: + - kind: ServiceAccount + name: kyverno-cleanup-controller + namespace: kyverno +--- +# Source: kyverno/templates/reports-controller/rolebinding.yaml +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kyverno:reports-controller + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + namespace: kyverno +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kyverno:reports-controller +subjects: + - kind: ServiceAccount + name: kyverno-reports-controller + namespace: kyverno +--- +# Source: kyverno/templates/admission-controller/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: kyverno-svc + namespace: kyverno + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + ports: + - port: 443 + targetPort: https + protocol: TCP + name: https + selector: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + type: ClusterIP +--- +# Source: kyverno/templates/admission-controller/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: kyverno-svc-metrics + namespace: kyverno + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + ports: + - port: 8000 + targetPort: 8000 + protocol: TCP + name: metrics-port + selector: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + type: ClusterIP +--- +# Source: kyverno/templates/background-controller/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: kyverno-background-controller-metrics + namespace: kyverno + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + ports: + - port: 8000 + targetPort: 8000 + protocol: TCP + name: metrics-port + selector: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + type: ClusterIP +--- +# Source: kyverno/templates/cleanup-controller/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: kyverno-cleanup-controller + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + ports: + - port: 443 + targetPort: https + protocol: TCP + name: https + selector: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + type: ClusterIP +--- +# Source: kyverno/templates/cleanup-controller/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: kyverno-cleanup-controller-metrics + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + ports: + - port: 8000 + targetPort: 8000 + protocol: TCP + name: metrics-port + selector: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + type: ClusterIP +--- +# Source: kyverno/templates/reports-controller/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: kyverno-reports-controller-metrics + namespace: kyverno + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + ports: + - port: 8000 + targetPort: 8000 + protocol: TCP + name: metrics-port + selector: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + type: ClusterIP +--- +# Source: kyverno/templates/admission-controller/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kyverno-admission-controller + namespace: kyverno + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + replicas: + revisionHistoryLimit: 10 + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 40% + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + template: + metadata: + labels: + app.kubernetes.io/component: admission-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + spec: + dnsPolicy: ClusterFirst + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/component + operator: In + values: + - admission-controller + topologyKey: kubernetes.io/hostname + weight: 1 + serviceAccountName: kyverno-admission-controller + initContainers: + - name: kyverno-pre + image: "ghcr.io/kyverno/kyvernopre:v1.12.3" + imagePullPolicy: IfNotPresent + args: + - --loggingFormat=text + - --v=2 + resources: + limits: + cpu: 100m + memory: 256Mi + requests: + cpu: 10m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + env: + - name: KYVERNO_SERVICEACCOUNT_NAME + value: kyverno-admission-controller + - name: INIT_CONFIG + value: kyverno + - name: METRICS_CONFIG + value: kyverno-metrics + - name: KYVERNO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: KYVERNO_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: KYVERNO_DEPLOYMENT + value: kyverno-admission-controller + - name: KYVERNO_SVC + value: kyverno-svc + containers: + - name: kyverno + image: "ghcr.io/kyverno/kyverno:v1.12.3" + imagePullPolicy: IfNotPresent + args: + - --caSecretName=kyverno-svc.kyverno.svc.kyverno-tls-ca + - --tlsSecretName=kyverno-svc.kyverno.svc.kyverno-tls-pair + - --backgroundServiceAccountName=system:serviceaccount:kyverno:kyverno-background-controller + - --servicePort=443 + - --webhookServerPort=9443 + - --disableMetrics=false + - --otelConfig=prometheus + - --metricsPort=8000 + - --admissionReports=true + - --autoUpdateWebhooks=true + - --enableConfigMapCaching=true + - --enableDeferredLoading=true + - --dumpPayload=false + - --forceFailurePolicyIgnore=false + - --generateValidatingAdmissionPolicy=false + - --maxAPICallResponseLength=2000000 + - --loggingFormat=text + - --v=2 + - --omitEvents=PolicyApplied,PolicySkipped + - --enablePolicyException=true + - --protectManagedResources=false + - --allowInsecureRegistry=false + - --registryCredentialHelpers=default,google,amazon,azure,github + + resources: + limits: + memory: 384Mi + requests: + cpu: 100m + memory: 128Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + ports: + - containerPort: 9443 + name: https + protocol: TCP + - containerPort: 8000 + name: metrics-port + protocol: TCP + + env: + - name: INIT_CONFIG + value: kyverno + - name: METRICS_CONFIG + value: kyverno-metrics + - name: KYVERNO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: KYVERNO_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: KYVERNO_SERVICEACCOUNT_NAME + value: kyverno-admission-controller + - name: KYVERNO_SVC + value: kyverno-svc + - name: TUF_ROOT + value: /.sigstore + - name: KYVERNO_DEPLOYMENT + value: kyverno-admission-controller + startupProbe: + failureThreshold: 20 + httpGet: + path: /health/liveness + port: 9443 + scheme: HTTPS + initialDelaySeconds: 2 + periodSeconds: 6 + livenessProbe: + failureThreshold: 2 + httpGet: + path: /health/liveness + port: 9443 + scheme: HTTPS + initialDelaySeconds: 15 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 5 + readinessProbe: + failureThreshold: 6 + httpGet: + path: /health/readiness + port: 9443 + scheme: HTTPS + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + volumeMounts: + - mountPath: /.sigstore + name: sigstore + volumes: + - name: sigstore + emptyDir: {} +--- +# Source: kyverno/templates/background-controller/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kyverno-background-controller + namespace: kyverno + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + replicas: + revisionHistoryLimit: 10 + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 40% + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + template: + metadata: + labels: + app.kubernetes.io/component: background-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + spec: + dnsPolicy: ClusterFirst + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/component + operator: In + values: + - background-controller + topologyKey: kubernetes.io/hostname + weight: 1 + serviceAccountName: kyverno-background-controller + containers: + - name: controller + image: "ghcr.io/kyverno/background-controller:v1.12.3" + imagePullPolicy: IfNotPresent + ports: + - containerPort: 9443 + name: https + protocol: TCP + - containerPort: 8000 + name: metrics + protocol: TCP + + args: + - --disableMetrics=false + - --otelConfig=prometheus + - --metricsPort=8000 + - --enableConfigMapCaching=true + - --enableDeferredLoading=true + - --maxAPICallResponseLength=2000000 + - --loggingFormat=text + - --v=2 + - --omitEvents=PolicyApplied,PolicySkipped + - --enablePolicyException=true + + env: + - name: KYVERNO_SERVICEACCOUNT_NAME + value: kyverno-background-controller + - name: KYVERNO_DEPLOYMENT + value: kyverno-background-controller + - name: INIT_CONFIG + value: kyverno + - name: METRICS_CONFIG + value: kyverno-metrics + - name: KYVERNO_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: KYVERNO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + resources: + limits: + memory: 128Mi + requests: + cpu: 100m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault +--- +# Source: kyverno/templates/cleanup-controller/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kyverno-cleanup-controller + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + replicas: + revisionHistoryLimit: 10 + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 40% + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + template: + metadata: + labels: + app.kubernetes.io/component: cleanup-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + spec: + dnsPolicy: ClusterFirst + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/component + operator: In + values: + - cleanup-controller + topologyKey: kubernetes.io/hostname + weight: 1 + serviceAccountName: kyverno-cleanup-controller + containers: + - name: controller + image: "ghcr.io/kyverno/cleanup-controller:v1.12.3" + imagePullPolicy: IfNotPresent + ports: + - containerPort: 9443 + name: https + protocol: TCP + - containerPort: 8000 + name: metrics + protocol: TCP + + args: + - --caSecretName=kyverno-cleanup-controller.kyverno.svc.kyverno-tls-ca + - --tlsSecretName=kyverno-cleanup-controller.kyverno.svc.kyverno-tls-pair + - --servicePort=443 + - --cleanupServerPort=9443 + - --webhookServerPort=9443 + - --disableMetrics=false + - --otelConfig=prometheus + - --metricsPort=8000 + - --enableDeferredLoading=true + - --dumpPayload=false + - --maxAPICallResponseLength=2000000 + - --loggingFormat=text + - --v=2 + - --protectManagedResources=false + - --ttlReconciliationInterval=1m + + env: + - name: KYVERNO_DEPLOYMENT + value: kyverno-cleanup-controller + - name: INIT_CONFIG + value: kyverno + - name: METRICS_CONFIG + value: kyverno-metrics + - name: KYVERNO_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: KYVERNO_SERVICEACCOUNT_NAME + value: kyverno-cleanup-controller + - name: KYVERNO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: KYVERNO_SVC + value: kyverno-cleanup-controller + resources: + limits: + memory: 128Mi + requests: + cpu: 100m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + startupProbe: + failureThreshold: 20 + httpGet: + path: /health/liveness + port: 9443 + scheme: HTTPS + initialDelaySeconds: 2 + periodSeconds: 6 + livenessProbe: + failureThreshold: 2 + httpGet: + path: /health/liveness + port: 9443 + scheme: HTTPS + initialDelaySeconds: 15 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 5 + readinessProbe: + failureThreshold: 6 + httpGet: + path: /health/readiness + port: 9443 + scheme: HTTPS + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 +--- +# Source: kyverno/templates/reports-controller/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kyverno-reports-controller + namespace: kyverno + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + replicas: + revisionHistoryLimit: 10 + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 40% + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/part-of: kyverno + template: + metadata: + labels: + app.kubernetes.io/component: reports-controller + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 + spec: + dnsPolicy: ClusterFirst + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/component + operator: In + values: + - reports-controller + topologyKey: kubernetes.io/hostname + weight: 1 + serviceAccountName: kyverno-reports-controller + containers: + - name: controller + image: "ghcr.io/kyverno/reports-controller:v1.12.3" + imagePullPolicy: IfNotPresent + ports: + - containerPort: 9443 + name: https + protocol: TCP + - containerPort: 8000 + name: metrics + protocol: TCP + + args: + - --disableMetrics=false + - --otelConfig=prometheus + - --metricsPort=8000 + - --admissionReports=true + - --aggregateReports=true + - --policyReports=true + - --validatingAdmissionPolicyReports=false + - --backgroundScan=true + - --backgroundScanWorkers=2 + - --backgroundScanInterval=1h + - --skipResourceFilters=true + - --enableConfigMapCaching=true + - --enableDeferredLoading=true + - --maxAPICallResponseLength=2000000 + - --loggingFormat=text + - --v=2 + - --omitEvents=PolicyApplied,PolicySkipped + - --enablePolicyException=true + - --reportsChunkSize=0 + - --allowInsecureRegistry=false + - --registryCredentialHelpers=default,google,amazon,azure,github + + env: + - name: KYVERNO_SERVICEACCOUNT_NAME + value: kyverno-reports-controller + - name: KYVERNO_DEPLOYMENT + value: kyverno-reports-controller + - name: INIT_CONFIG + value: kyverno + - name: METRICS_CONFIG + value: kyverno-metrics + - name: KYVERNO_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: KYVERNO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: TUF_ROOT + value: /.sigstore + resources: + limits: + memory: 128Mi + requests: + cpu: 100m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /.sigstore + name: sigstore + volumes: + - name: sigstore + emptyDir: {} +--- +# Source: kyverno/templates/cleanup/cleanup-admission-reports.yaml +apiVersion: batch/v1 +kind: CronJob +metadata: + name: kyverno-cleanup-admission-reports + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + schedule: "*/10 * * * *" + concurrencyPolicy: Forbid + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + backoffLimit: 3 + template: + metadata: + spec: + serviceAccountName: kyverno-cleanup-jobs + containers: + - name: cleanup + image: "bitnami/kubectl:1.28.5" + imagePullPolicy: + command: + - /bin/bash + - -c + - | + set -euo pipefail + COUNT=$(kubectl get admissionreports.kyverno.io -A | wc -l) + if [ "$COUNT" -gt 10000 ]; then + echo "too many reports found ($COUNT), cleaning up..." + kubectl delete admissionreports.kyverno.io -A -l='!audit.kyverno.io/report.aggregate' + else + echo "($COUNT) reports found, no clean up needed" + fi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + restartPolicy: OnFailure +--- +# Source: kyverno/templates/cleanup/cleanup-cluster-admission-reports.yaml +apiVersion: batch/v1 +kind: CronJob +metadata: + name: kyverno-cleanup-cluster-admission-reports + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + schedule: "*/10 * * * *" + concurrencyPolicy: Forbid + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + backoffLimit: 3 + template: + metadata: + spec: + serviceAccountName: kyverno-cleanup-jobs + containers: + - name: cleanup + image: "bitnami/kubectl:1.28.5" + imagePullPolicy: + command: + - /bin/bash + - -c + - | + set -euo pipefail + COUNT=$(kubectl get clusteradmissionreports.kyverno.io -A | wc -l) + if [ "$COUNT" -gt 10000 ]; then + echo "too many reports found ($COUNT), cleaning up..." + kubectl delete clusteradmissionreports.kyverno.io -A -l='!audit.kyverno.io/report.aggregate' + else + echo "($COUNT) reports found, no clean up needed" + fi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + restartPolicy: OnFailure +--- +# Source: kyverno/templates/cleanup/cleanup-cluster-ephemeral-reports.yaml +apiVersion: batch/v1 +kind: CronJob +metadata: + name: kyverno-cleanup-cluster-ephemeral-reports + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + schedule: "*/10 * * * *" + concurrencyPolicy: Forbid + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + backoffLimit: 3 + template: + metadata: + spec: + serviceAccountName: kyverno-cleanup-jobs + containers: + - name: cleanup + image: "bitnami/kubectl:1.28.5" + imagePullPolicy: + command: + - /bin/bash + - -c + - | + set -euo pipefail + COUNT=$(kubectl get clusterephemeralreports.reports.kyverno.io -A | wc -l) + if [ "$COUNT" -gt 10000 ]; then + echo "too many clusterephemeralreports found ($COUNT), cleaning up..." + kubectl delete clusterephemeralreports.reports.kyverno.io -A --all + else + echo "($COUNT) reports found, no clean up needed" + fi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + restartPolicy: OnFailure +--- +# Source: kyverno/templates/cleanup/cleanup-ephemeral-reports.yaml +apiVersion: batch/v1 +kind: CronJob +metadata: + name: kyverno-cleanup-ephemeral-reports + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + schedule: "*/10 * * * *" + concurrencyPolicy: Forbid + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + backoffLimit: 3 + template: + metadata: + spec: + serviceAccountName: kyverno-cleanup-jobs + containers: + - name: cleanup + image: "bitnami/kubectl:1.28.5" + imagePullPolicy: + command: + - /bin/bash + - -c + - | + set -euo pipefail + COUNT=$(kubectl get ephemeralreports.reports.kyverno.io -A | wc -l) + if [ "$COUNT" -gt 10000 ]; then + echo "too many ephemeralreports found ($COUNT), cleaning up..." + kubectl delete ephemeralreports.reports.kyverno.io -A --all + else + echo "($COUNT) reports found, no clean up needed" + fi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + restartPolicy: OnFailure +--- +# Source: kyverno/templates/cleanup/cleanup-update-requests.yaml +apiVersion: batch/v1 +kind: CronJob +metadata: + name: kyverno-cleanup-update-requests + namespace: kyverno + labels: + app.kubernetes.io/component: cleanup + app.kubernetes.io/instance: kyverno + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: kyverno + app.kubernetes.io/version: 3.2.4 + helm.sh/chart: kyverno-3.2.4 +spec: + schedule: "*/10 * * * *" + concurrencyPolicy: Forbid + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + backoffLimit: 3 + template: + metadata: + spec: + serviceAccountName: kyverno-cleanup-jobs + containers: + - name: cleanup + image: "bitnami/kubectl:1.28.5" + imagePullPolicy: + command: + - /bin/bash + - -c + - | + set -euo pipefail + COUNT=$(kubectl get updaterequests.kyverno.io -A | wc -l) + if [ "$COUNT" -gt 10000 ]; then + echo "too many updaterequests found ($COUNT), cleaning up..." + kubectl delete updaterequests.kyverno.io --all -n kyverno + else + echo "($COUNT) reports found, no clean up needed" + fi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + restartPolicy: OnFailure diff --git a/kyverno/tests/test_e2e.py b/kyverno/tests/test_e2e.py new file mode 100644 index 0000000000000..58f3eb98642aa --- /dev/null +++ b/kyverno/tests/test_e2e.py @@ -0,0 +1,9 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +from datadog_checks.dev.utils import assert_service_checks + + +def test_kyverno_e2e(dd_agent_check): + aggregator = dd_agent_check(rate=True) + assert_service_checks(aggregator) diff --git a/kyverno/tests/test_unit.py b/kyverno/tests/test_unit.py new file mode 100644 index 0000000000000..adf5ec1c41dc3 --- /dev/null +++ b/kyverno/tests/test_unit.py @@ -0,0 +1,58 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +import pytest + +from datadog_checks.base.constants import ServiceCheck + +# from datadog_checks.dev.utils import get_metadata_metrics +from datadog_checks.kyverno import KyvernoCheck + +from .common import ( + ADMISSION_METRICS, + BACKGROUND_METRICS, + COMMON_METRICS, + OM_MOCKED_INSTANCE, + REPORTS_METRICS, + get_fixture_path, +) + + +@pytest.mark.parametrize( + 'fixture_name, expected_metrics', + [ + ('admission', ADMISSION_METRICS), + ('background', BACKGROUND_METRICS), + ('cleanup', []), + ('reports', REPORTS_METRICS), + ], +) +def test_kyverno_mock_metrics(dd_run_check, aggregator, mock_http_response, fixture_name, expected_metrics): + mock_http_response(file_path=get_fixture_path(f'{fixture_name}_controller.txt')) + check = KyvernoCheck('kyverno', {}, [OM_MOCKED_INSTANCE]) + dd_run_check(check) + + for metric in expected_metrics + COMMON_METRICS: + aggregator.assert_metric(metric) + aggregator.assert_all_metrics_covered() + aggregator.assert_service_check('kyverno.openmetrics.health', ServiceCheck.OK) + + +def test_kyverno_mock_invalid_endpoint(dd_run_check, aggregator, mock_http_response): + mock_http_response(status_code=503) + check = KyvernoCheck('kyverno', {}, [OM_MOCKED_INSTANCE]) + with pytest.raises(Exception): + dd_run_check(check) + + aggregator.assert_service_check('kyverno.openmetrics.health', ServiceCheck.CRITICAL) + + +def test_kyverno_label_remap(dd_run_check, aggregator, mock_http_response): + mock_http_response(file_path=get_fixture_path('remap_labels.txt')) + check = KyvernoCheck('kyverno', {}, [OM_MOCKED_INSTANCE]) + relabeled_tags = ['kyverno_namespace:foo', 'kyverno_name:baz', 'go_version:go1.21.10'] + dd_run_check(check) + + aggregator.assert_metric('kyverno.go.info') + for tag in relabeled_tags: + aggregator.assert_metric_has_tag('kyverno.go.info', tag) From 907cb901f9654a7c6d5eaca86c710b487491c3a9 Mon Sep 17 00:00:00 2001 From: Alex Lopez Date: Tue, 9 Jul 2024 11:16:14 +0200 Subject: [PATCH 26/68] Enable manual triggering of dependency build & resolution (#17995) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Enable manual triggering of dependency build & resolution * Use default_branch instead of hardcoded branch name Co-authored-by: Hugo Beauzée-Luyssen --------- Co-authored-by: Hugo Beauzée-Luyssen --- .github/workflows/build-deps.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-deps.yml b/.github/workflows/build-deps.yml index 0b082e96e6619..53b76c571802f 100644 --- a/.github/workflows/build-deps.yml +++ b/.github/workflows/build-deps.yml @@ -1,6 +1,7 @@ name: Build dependencies on: + workflow_dispatch: pull_request: branches: - master @@ -266,7 +267,8 @@ jobs: publish: name: Publish artifacts - if: github.event_name == 'push' + if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && (github.ref == + github.event.repository.default_branch || startsWith(github.ref, '7.'))) needs: - build - build-macos From 9891b3da488d31beae22beb6ae0d5ee2b4989e5f Mon Sep 17 00:00:00 2001 From: Alex Lopez Date: Tue, 9 Jul 2024 11:47:42 +0200 Subject: [PATCH 27/68] Fix build-deps workflow yaml (#18002) --- .github/workflows/build-deps.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-deps.yml b/.github/workflows/build-deps.yml index 53b76c571802f..9c3391071169c 100644 --- a/.github/workflows/build-deps.yml +++ b/.github/workflows/build-deps.yml @@ -267,8 +267,7 @@ jobs: publish: name: Publish artifacts - if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && (github.ref == - github.event.repository.default_branch || startsWith(github.ref, '7.'))) + if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && (github.ref == github.event.repository.default_branch || startsWith(github.ref, '7.'))) needs: - build - build-macos From 5ffc1b8c047e6688377d09a6a29bab607bff0167 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Tue, 9 Jul 2024 13:11:38 +0200 Subject: [PATCH 28/68] Kyverno starting version should be 0.0.1 (#18001) --- kyverno/datadog_checks/kyverno/__about__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kyverno/datadog_checks/kyverno/__about__.py b/kyverno/datadog_checks/kyverno/__about__.py index acbfd1c866b84..e9541ce83e9e5 100644 --- a/kyverno/datadog_checks/kyverno/__about__.py +++ b/kyverno/datadog_checks/kyverno/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '0.0.1' From 010201ce749f45a830c99010de64584a2035ec79 Mon Sep 17 00:00:00 2001 From: Zhengda Lu Date: Tue, 9 Jul 2024 07:14:30 -0400 Subject: [PATCH 29/68] [mongo] Properly handle the null value of waiting_for_latch in operation sampling (#17997) --- mongo/changelog.d/17997.fixed | 1 + mongo/datadog_checks/mongo/dbm/operation_samples.py | 2 +- mongo/datadog_checks/mongo/dbm/types.py | 8 ++++---- mongo/tests/fixtures/$currentOp-standalone | 8 +++++++- mongo/tests/results/opeartion-activities-mongos.json | 4 ++-- mongo/tests/results/opeartion-activities-standalone.json | 7 ++++++- mongo/tests/results/operation-samples-mongos.json | 2 +- mongo/tests/results/operation-samples-standalone.json | 7 ++++++- 8 files changed, 28 insertions(+), 11 deletions(-) create mode 100644 mongo/changelog.d/17997.fixed diff --git a/mongo/changelog.d/17997.fixed b/mongo/changelog.d/17997.fixed new file mode 100644 index 0000000000000..7b9910c4c92b6 --- /dev/null +++ b/mongo/changelog.d/17997.fixed @@ -0,0 +1 @@ +Fix the default null value for waiting_for_latch in operation sampling. When an operation is not waiting for latch, waiting_for_latch should be an empty dict instead of boolean False. diff --git a/mongo/datadog_checks/mongo/dbm/operation_samples.py b/mongo/datadog_checks/mongo/dbm/operation_samples.py index 889538eae6d47..111febf8a1205 100644 --- a/mongo/datadog_checks/mongo/dbm/operation_samples.py +++ b/mongo/datadog_checks/mongo/dbm/operation_samples.py @@ -368,7 +368,7 @@ def _get_operation_stats(self, operation: dict) -> OperationSampleOperationStats "waiting_for_flow_control": operation.get("waitingForFlowControl", False), # bool "flow_control_stats": self._format_key_name(operation.get("flowControlStats", {})), # dict # Latches - "waiting_for_latch": operation.get("waitingForLatch", False), # bool + "waiting_for_latch": self._format_key_name(operation.get("waitingForLatch", {})), # dict # cursor "cursor": self._get_operation_cursor(operation), # dict } diff --git a/mongo/datadog_checks/mongo/dbm/types.py b/mongo/datadog_checks/mongo/dbm/types.py index 1d5c71ec463f0..8008c0b56d28e 100644 --- a/mongo/datadog_checks/mongo/dbm/types.py +++ b/mongo/datadog_checks/mongo/dbm/types.py @@ -2,7 +2,7 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -from typing import List, Optional, TypedDict +from typing import Dict, List, Optional, TypedDict class OperationSampleClientDriver(TypedDict, total=False): @@ -106,9 +106,9 @@ class OperationSampleOperationStatsFlowControlStats(TypedDict, total=False): class OperationSampleOperationStatsWaitingForLatch(TypedDict, total=False): - timestamp: str - captureName: str - backtrace: List[str] + timestamp: Optional[Dict[str, str]] + capture_name: Optional[str] + backtrace: Optional[List[str]] class OperationSampleOperationStatsCursor(TypedDict, total=False): diff --git a/mongo/tests/fixtures/$currentOp-standalone b/mongo/tests/fixtures/$currentOp-standalone index b775a780ea161..a000d54ff6656 100644 --- a/mongo/tests/fixtures/$currentOp-standalone +++ b/mongo/tests/fixtures/$currentOp-standalone @@ -118,6 +118,12 @@ } }, "waitingForFlowControl": false, - "flowControlStats": {} + "flowControlStats": {}, + "waitingForLatch": { + "timestamp": { + "$date": "2024-05-16T18:06:38.419Z" + }, + "captureName": "FutureResolution" + } } ] \ No newline at end of file diff --git a/mongo/tests/results/opeartion-activities-mongos.json b/mongo/tests/results/opeartion-activities-mongos.json index 117e04d930298..031da09e448aa 100644 --- a/mongo/tests/results/opeartion-activities-mongos.json +++ b/mongo/tests/results/opeartion-activities-mongos.json @@ -54,7 +54,7 @@ }, "waiting_for_flow_control": false, "flow_control_stats": {}, - "waiting_for_latch": false, + "waiting_for_latch": {}, "type": "op", "op": "query", "shard": "shard04", @@ -119,7 +119,7 @@ }, "waiting_for_flow_control": false, "flow_control_stats": {}, - "waiting_for_latch": false, + "waiting_for_latch": {}, "cursor": { "cursor_id": 7153547462305880513, "created_date": "2024-06-13T20:50:10.806000", diff --git a/mongo/tests/results/opeartion-activities-standalone.json b/mongo/tests/results/opeartion-activities-standalone.json index 1b632385bdb40..0a505fac9d115 100644 --- a/mongo/tests/results/opeartion-activities-standalone.json +++ b/mongo/tests/results/opeartion-activities-standalone.json @@ -47,7 +47,12 @@ }, "waiting_for_flow_control": false, "flow_control_stats": {}, - "waiting_for_latch": false, + "waiting_for_latch": { + "timestamp": { + "$date": "2024-05-16T18:06:38.419Z" + }, + "capture_name": "FutureResolution" + }, "type": "op", "op": "query", "shard": null, diff --git a/mongo/tests/results/operation-samples-mongos.json b/mongo/tests/results/operation-samples-mongos.json index 5557efdf2eb75..47567e2977a1e 100644 --- a/mongo/tests/results/operation-samples-mongos.json +++ b/mongo/tests/results/operation-samples-mongos.json @@ -750,7 +750,7 @@ }, "waiting_for_flow_control": false, "flow_control_stats": {}, - "waiting_for_latch": false, + "waiting_for_latch": {}, "type": "op", "op": "query", "shard": "shard04", diff --git a/mongo/tests/results/operation-samples-standalone.json b/mongo/tests/results/operation-samples-standalone.json index a5d739b3bf1e1..6a95c8f18da5f 100644 --- a/mongo/tests/results/operation-samples-standalone.json +++ b/mongo/tests/results/operation-samples-standalone.json @@ -168,7 +168,12 @@ }, "waiting_for_flow_control": false, "flow_control_stats": {}, - "waiting_for_latch": false, + "waiting_for_latch": { + "timestamp": { + "$date": "2024-05-16T18:06:38.419Z" + }, + "capture_name": "FutureResolution" + }, "type": "op", "op": "query", "shard": null, From 57c2d7a3f5c05cf31b1368daccfe757b1b784132 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Tue, 9 Jul 2024 13:32:36 +0200 Subject: [PATCH 30/68] Release v1 of kyverno (#18005) * [Release] Bumped kyverno version to 1.0.0 * [Release] Update metadata --- .in-toto/tag.b9ca7eb3.link | 2 +- kyverno/CHANGELOG.md | 5 +++++ kyverno/changelog.d/17757.added | 1 - kyverno/datadog_checks/kyverno/__about__.py | 2 +- requirements-agent-release.txt | 1 + 5 files changed, 8 insertions(+), 3 deletions(-) delete mode 100644 kyverno/changelog.d/17757.added diff --git a/.in-toto/tag.b9ca7eb3.link b/.in-toto/tag.b9ca7eb3.link index 3bbf41a3d28cc..ea6f7ea4fd15c 100644 --- a/.in-toto/tag.b9ca7eb3.link +++ b/.in-toto/tag.b9ca7eb3.link @@ -1 +1 @@ -{"signatures":[{"keyid":"b9ca7eb3a90f78a8d30ef9bbd529fe2c80aa7129","other_headers":"04000108001d162104b9ca7eb3a90f78a8d30ef9bbd529fe2c80aa71290502667e7f6c","signature":"8863331275e297b1d6809d028e103181d2de5cad5b7e46756b442a564f8ee7aecf195398c07b2fe1a9939ad27ec3856306185f38ec5520158ef59c4632b0b4a7171082744bf0630ab4d932627649ef7d27209876166d34327130e9dc65e72bfe7b1b8c788e746552febe2615440b4aa78f8a8f94daf4643931f7d4c62b9a835a2596e03f228d343244b67aabea07ab4614ca7ec91b6973f0c5df5a0ec2c3ae1cc71a9d4b98fa3ef5c6574207e136ab0784d2d6cc78677fc34e09fc377c06e00fc0f40dc428509c984aaa69ee584adc82c3ed33cd7bcd6aec4fe12989d1d55b34adf4418a8ffcd7181fe25fcfa44742930b4e3cd9dcfb23577bf719dd136c9c305f960807e17a754156ca1a19b31e91f2503de670539c8303372145fa54110bbc61e62a2d867e51252a00c75cdd54967b9eef2888df370be1fc461e302591612299534d115be1bf3f75ebf481f07fb72762044c2d9e8c3dd5c605b260109efb214c7d359aef6915431a6e5617adaee1b2d3e372d0c64254687efc4d6748cfe6ab2c23549e3b8538e55d2a0ca020783d0c5a843d0486ed4d4c0974d806a5f5ab9d039e5e60282aa0f1a9fa82e104f4a17deaece5a83a98de00bff6e63c949da29df242c869f67be9a0b9db9bea176b736129ebb8ba1df855022cf9cb6e8f9fb2b3e97d887228f8b5d2c73f052ef10aafd0f9cf625a76a7e3ffa68255b889ae8ff9"}],"signed":{"_type":"link","byproducts":{},"command":[],"environment":{},"materials":{},"name":"tag","products":{"datadog_checks_dev/datadog_checks/__init__.py":{"sha256":"9a3c64b8b00c94da4b4f34618d803d3255808caf21b8afa9195c84b61da66b6a"},"datadog_checks_dev/datadog_checks/dev/__about__.py":{"sha256":"0ec8ff138802a3ca9c53f950090dc6bcee05fed50caca12a4bcbb7f7b117b2bf"},"datadog_checks_dev/datadog_checks/dev/__init__.py":{"sha256":"a719d056d27f47df5fcd37b6f4d584d1e6a7cbccef33ae01da2520b19c7dd722"},"datadog_checks_dev/datadog_checks/dev/__main__.py":{"sha256":"0b1c4bcaa055bf74aabb2b821b4b1c26b0833439ab59d91193feb086d1627ac2"},"datadog_checks_dev/datadog_checks/dev/_env.py":{"sha256":"6dd11aa864a57b0a0373cc62ad12347523d10b6813d0386ec2e6e628abae7b92"},"datadog_checks_dev/datadog_checks/dev/ci.py":{"sha256":"4f936a4d0e8ba8fb56731022100507fe6658f2daed5b31a0e9ea0070e84c7668"},"datadog_checks_dev/datadog_checks/dev/compat.py":{"sha256":"3c717f93777b1e3c7d3d15e1f454f0c5e8529e931a2698305d8c399ea8f4b77b"},"datadog_checks_dev/datadog_checks/dev/conditions.py":{"sha256":"2dfd90c53713a4b1bffbb4667e86b907d5d73b9bbffb06ea9395160a2c70d2e5"},"datadog_checks_dev/datadog_checks/dev/docker.py":{"sha256":"8a5788ec7f10971bca88fcf6e78c09e8e14b8961056c93182c6ed2daf10725ce"},"datadog_checks_dev/datadog_checks/dev/env.py":{"sha256":"8d90808a53ac87a0db9bad4c4babfd003ad116a84af507262f57ccfb7b694053"},"datadog_checks_dev/datadog_checks/dev/errors.py":{"sha256":"b048cb0dab6b7cab91e38ae0de73b8e167a62c03b940a7e679040b5a3eff8605"},"datadog_checks_dev/datadog_checks/dev/fs.py":{"sha256":"85919e2465060b97862c0535cd0815c231fb14cba68bc7484af48ac52f67bade"},"datadog_checks_dev/datadog_checks/dev/http.py":{"sha256":"7c7191d5d772f02a808f7c873da62d61bd47ca0efe292f9a757061ee6df6945e"},"datadog_checks_dev/datadog_checks/dev/jmx.py":{"sha256":"9960e6c5a88e6c37959c7fad1247c542a63a05fd0807822e1af59fb0a5eb1803"},"datadog_checks_dev/datadog_checks/dev/kind.py":{"sha256":"96c8893f8bc8be0cd51ba565ae0da5d104700c1d40c09478ea18021cfb187d82"},"datadog_checks_dev/datadog_checks/dev/kube_port_forward.py":{"sha256":"39690a158ba1f82521e54a438a1502090a1a6d74539e21dbbab2bf6c2c02877f"},"datadog_checks_dev/datadog_checks/dev/plugin/__init__.py":{"sha256":"4c2d2aee209b36a7188df5396b304da429e2f0b01060e7d8e8500313749910f0"},"datadog_checks_dev/datadog_checks/dev/plugin/pytest.py":{"sha256":"08ec0940450c2a4d36f1726c51baa16ce0111f68a0d123a6066e47806a0df43d"},"datadog_checks_dev/datadog_checks/dev/spec.py":{"sha256":"145c7b93d41da315b567f8dba92c07069ee0ddd67ef508d8b4540ca997bd3911"},"datadog_checks_dev/datadog_checks/dev/ssh_tunnel.py":{"sha256":"ae1bbe4c8fa727ee5429c155e38796a50d70a93d1ccb2f517d4ab077e06dab23"},"datadog_checks_dev/datadog_checks/dev/structures.py":{"sha256":"198ddb964230031edac24abfdd3e32902be9f36257494d1993c72ef1d3c6b0f6"},"datadog_checks_dev/datadog_checks/dev/subprocess.py":{"sha256":"5094a6304d104edf8789ad567a360addf97426bf87a2e6fe31ea75ee822e6ff0"},"datadog_checks_dev/datadog_checks/dev/terraform.py":{"sha256":"bb679b06a87f4feaef943f730ad69066247ba35988a268748162d07a791259d4"},"datadog_checks_dev/datadog_checks/dev/testing.py":{"sha256":"f659468bc1f0146f16f2e6bf48c35c85438f80aae9c0ec65562c380fd34b6690"},"datadog_checks_dev/datadog_checks/dev/tooling/__init__.py":{"sha256":"4c2d2aee209b36a7188df5396b304da429e2f0b01060e7d8e8500313749910f0"},"datadog_checks_dev/datadog_checks/dev/tooling/__main__.py":{"sha256":"60b67815a138da81e4984c304402f61c4ed7282374e9e8cdfe8fca21200f57af"},"datadog_checks_dev/datadog_checks/dev/tooling/catalog_const.py":{"sha256":"22d1c5932d586df0e894eaf22b496871148cae968086c9239523417000c7e176"},"datadog_checks_dev/datadog_checks/dev/tooling/clean.py":{"sha256":"8411d7605bc7e0bdf56560e7cdf50b21132c1cb3d1d5cf5d4af47b5fb89267d7"},"datadog_checks_dev/datadog_checks/dev/tooling/cli.py":{"sha256":"333506143c67d50e491acdf6b666a768d794900b891b54d01972e1a546beea29"},"datadog_checks_dev/datadog_checks/dev/tooling/codeowners.py":{"sha256":"4395fc4b7cf59c749a85d567e53537c35283b2fb698a432ddfce0396bc3a4b09"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/__init__.py":{"sha256":"cd559ab9d0222c6566cbc40acec1d07e34b32d1e24f9a7a5c3b1315cda0d74d6"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/agent/__init__.py":{"sha256":"21f07a02f2dab8873d774e0c096945a5a871c9a74d898860c984a11528a1f13b"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/agent/requirements.py":{"sha256":"8aa8d2feac7f3ec9ac54d72508c32fb7c52e6d26b2f14173a14da90bb3cfe893"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/ci/__init__.py":{"sha256":"191a8d4d6140548f010dab64e178201c27cdce9ad85a5f76c1a1baba9151130c"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/ci/setup.py":{"sha256":"f645e34d547fe5935e7c0d3c19163fed712dd53e769bee71587c4d969bd2cc32"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/clean.py":{"sha256":"cd7fa0092ba01bc741a64dbb602ad956334b775338cc3f9ce9933dd95eac9ae3"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/config.py":{"sha256":"4633f9e5a47f51725add1440777526561bf165192fd1fd3d14315b78f6bf4f7b"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/console.py":{"sha256":"1366bc7a68a374c96246a2f8dab219ebad95c2b1239a691af721f95ebc737537"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/create.py":{"sha256":"79d6d3574618669ad5ffbe1136311b0eef92db26945b8e461ee6fe487be10b3d"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/__init__.py":{"sha256":"7f89a95c9b5565479c9ecce8e2bc99edea02448afaaa73b216448025c9459078"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/catalog.py":{"sha256":"77e30473cabd41c81d20d382552f9ae086d5ef07ed01f119f8e48fd257a9cff9"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/changes.py":{"sha256":"e4eb0e99c569356e10c493112f0d4b562a120dbf7f79628f2579ea9359696a26"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/create_commits.py":{"sha256":"f015f1ccddd7e0e86362c8d73dea3f9abd632ce1896dbdd6202b17d9828dde3f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/dashboard.py":{"sha256":"3998486b9c1d29fa7497347cf00e6892fa80212362fd7970d6e14e96d8a78dc9"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/jmx.py":{"sha256":"689144e492c269efa8d99ec4cd8a8597ef40e58ec512f4900e55c44451dea4a0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/manifest.py":{"sha256":"81e4925ff5de3519ff16b841f3a946f399d929693ccb4174bf5e77a9385d7eb8"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/prometheus.py":{"sha256":"77da687c3ed4f735c0fb585c404a8512707ae497afbca3a172d3db02cdc1380c"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/scripts/__init__.py":{"sha256":"c28c912cf99522f2fefd97444a9ab5117881e76db6a0d095afafcae0b8c182bc"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/scripts/github_user.py":{"sha256":"35148be0ada9603d66ac6fc333dfe938125f0844e52bd91b6153a42a4d9ecbf0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/scripts/metrics2md.py":{"sha256":"e1ee509547503f2939e2176df637d42285d94f361e7d45c5b44d6bca925aac91"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/scripts/remove_labels.py":{"sha256":"ed595382817323bc09722c0bf39b5f8a96454ca0f848e35ad110a5b6a9eb92e7"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/__init__.py":{"sha256":"b05b300236e8c7852bd02fae245ce8c905e4d7bcb2b0d6543366b030f460d97d"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/constants.py":{"sha256":"91bc112010f6f9fd4e040e89421a2b97fb07060fc402b21bbac3a3d00fce38ae"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/generate_profile.py":{"sha256":"97babd0c29a68d5a12b8785430ffdd8ffe3783399ebfe9f13f7ea0cbfe33a2b6"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/generate_traps_db.py":{"sha256":"3608038e42af10351a03a3f2f76084861f7362075b82e945ec75f5b70e5c32e9"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/translate_profile.py":{"sha256":"0ec4822a35d4f8011ca9c11f06ea04e57f74aa349f9f7788384e14f6ff8eb0df"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validate_mib_filenames.py":{"sha256":"235f3d225571a9957493698dae41149eeaeb0714df31fd7707161b1d8da5f503"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validate_snmp_profiles.py":{"sha256":"8562cefa771a52f86b4b90458fa0d0019997ccb4a9da85366e4de6201ba0cbbe"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validators/__init__.py":{"sha256":"083f2ce9f2d3e8104a83c7c94be9ab6562cb5c9294581b913992d5441e07b82a"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validators/profile_schema.json":{"sha256":"2bfde4d49c86e8c1906e2182f3a0be827f4f90b6cf42a156fe30c0c102735ae0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validators/utils.py":{"sha256":"16659cd61d8dfa4fd09179c2bf12ecfa0e01f9d6dfdb58ec6030060655fd8018"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validators/validator.py":{"sha256":"f4f888a47370619a57a6eabc15162fc82644736bf8047db21e3a289d13b2cb60"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/windows/__init__.py":{"sha256":"42adde34af2d619ba62aa4a20b345a413f66f6799b9cffa595a1d35ee77f84ec"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/windows/pdh.py":{"sha256":"612b974d4b222f26f4b21665637ef0fefa0855f78bb3ff8ea5f08093249f0f72"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/__init__.py":{"sha256":"771f7dbdaba99e22f78e336286ba9623c88d6612bc0dbf97f510ece9e9e22a1e"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/build.py":{"sha256":"0e4f2bab40cb30f9c02d755bfa2c6943dce668e9291e9afa59b24cc05be1d235"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/changelog.py":{"sha256":"1d10448cbc88e73818e9a4d8691d72bd57e520e61c0786c83203855af3e053a2"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/make.py":{"sha256":"86ef70d6de290931a6aba63179bed92354eccd06970ef6708acc76b048160dd9"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/show/__init__.py":{"sha256":"76701cad3b42c9ad904ab8f92caeb26818cad3599818e45eb672e6147d6c6a1f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/show/changes.py":{"sha256":"6005e6bb08fc14d0269c643df4d5d394c0425663b566983ba1aba792a121c671"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/show/ready.py":{"sha256":"bf6203afe8ad5a62f321d597a4b037bcfd20c56d9c0cc7a8811ee803d492e1f7"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/stats/__init__.py":{"sha256":"5b5187c36eb3953d3ef79a67ef28677078139b5f2849496f091176f682578a78"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/stats/common.py":{"sha256":"ea365d818ca5d160dff43a18fc5dec1c0ffeb4db8375784357cf56b0d075409e"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/stats/stats.py":{"sha256":"78a1ae027e8816a2f152f6054df1c6595524dc34c47274bcdc6b38a88983803f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/tag.py":{"sha256":"fdf6a3498acaee4b9ff4ba5b96cba537064a91c33f8e4890f36ce6968f0bb611"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/__init__.py":{"sha256":"f4f84c1b8f758da06ae4fb63dd3d6e89a743f86ad82a1b2f3706b1fd149ed1ce"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/fixed_cards_mover.py":{"sha256":"44d44d49489bed7ac357b00a3602b3a5b545c5be93bfe7282542ebbc7ed06d77"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/rc_build_cards_updater.py":{"sha256":"94ced0785ea8e62dcec6e26a201c7b85fe45a8081eddcba4c24bc4eaecb7ef8f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/status.py":{"sha256":"638eada82cf8eaf2c442c8d4314abb6c7fddfaae99c8427352e666d24ddad11e"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/testable.py":{"sha256":"e61cffff8f6b9366aaf7d90ded7586e54c068192d8d26b5cc021c1ddeca3d71e"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/tester_selector/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/tester_selector/cache.py":{"sha256":"2114d5f8809888c5166f1981111a29932f0eb9d324625749f426e913068fac1b"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/tester_selector/github_trello_user_matcher.py":{"sha256":"ad42076b54df20eb6103662eeea5312dd36c1b5bfb7ae831dbce34ce5dab6fd0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/tester_selector/github_users.py":{"sha256":"4c0abf6c407b43307dc961ca0573d5873c2e107c486b3d30994bcb9d3f25569c"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/tester_selector/tester_selector.py":{"sha256":"a7666fb562e0b9fba4719c8c57ddefc87725f9d211e2416a90b8dce0efb85ff5"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/tester_selector/tester_selector_team.py":{"sha256":"52963d1d48709bdb7d8eeb8131f59ff329c0dc95ca89be62df3a9f10679f1efa"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/tester_selector/trello_users.py":{"sha256":"e285b97757bbc4a95b2ebf95b323dd0a7bde71ae527b5ee8c17ce4e19a39fa8a"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/trello/update_rc_links.py":{"sha256":"804b251f0abe92407d402a814d95ce50fc17673109bdc4ba649f6f5e0fbb10d5"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/upload.py":{"sha256":"32ba19a345693a5224f0b47bb428595dc222c6f2e80ee5ce55ca570a716e2717"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/run.py":{"sha256":"4562a57b1fec3719fdcd402b4e6fb60727997b3d65738dd51f8b058a84447f58"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/test.py":{"sha256":"7665c44e173fb39c57f628642a1602b75f6ee4be33ee3b7b6f69fd1b514baaae"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/__init__.py":{"sha256":"5fc69ba42f0b93d144d18b24c4a764a3ffbff6168f04db6dd5b2d4746490b670"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/agent_reqs.py":{"sha256":"326b3b8ff592970607afff39dc789ce5a8e87cce401c93466c8d3d182cd1ab1b"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/agent_signature.py":{"sha256":"776028eca5f17fd76bddcefece677164e80a6f46c065f47adf746b8357577750"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/all_validations.py":{"sha256":"e5bec12b3870c16aaf934c2e5d915e9d00ed6d8bbea70e90d7c0050e8ec36a2a"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/codeowners.py":{"sha256":"b53816da23c5aa75b0847af340653e0ac508293775b3de8622f07af94f431252"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/config.py":{"sha256":"be832f8e8bbf1ec6f416eb87a4dcda79acdfa0a86e6f34a29c00c9428bd2e818"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/dashboards.py":{"sha256":"7dec95d45836e1ade04b4b8861fff9a788c68ddbcaa9731ba88fb419066f9b00"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/dep.py":{"sha256":"4c32708307b7700572413ff00adedb329be0303e0d7bd94946aac168ed44246d"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/eula.py":{"sha256":"be7a782a6ed082cfa3b392749e22c91fe5dc31e47a3df9e3969009d2b2f02a6f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/imports.py":{"sha256":"4a57ae1e1c2aa89409653524fffb14cf560c5fc007ba7e0adedb1bbe7c9e6182"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/integration_style.py":{"sha256":"3361d7f7cc49c7071b79ea9584ae1328acf8a87e7e88bb2162fe274dc1fabb0a"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/jmx_metrics.py":{"sha256":"191262b6666e4a8e353fa9becbead4c37fe651455be78b16ae18cd2f85478901"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/license_headers.py":{"sha256":"2f106f2f63ec01f8a57324311ca16d06fbf8440fe4ac6ae67b44662da6e162ce"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/licenses.py":{"sha256":"f09e682e630f89df161840a7dff65fe93b20432822c2e56fe1d6796de7591901"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/models.py":{"sha256":"c1f28db5d42a284b6a308fca583104a7742128d44492216155f5da94e67d167b"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/package.py":{"sha256":"489624b1a7c1c964f69068c0e93e876f96465d5be97fcc6353f16ab86609239f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/readmes.py":{"sha256":"063c457c317cd79941df231535d63246e9dbfe6f9e910f40e688897359b0928c"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/saved_views.py":{"sha256":"699491a6f758c8bd051063c4c2edd096f5b2eadb7f10824664caffa86b7e284a"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/service_checks.py":{"sha256":"5527f8ab8e94b02c3d87a48e432097f6e3a4ee1e417db244e3d72b8be6db61f0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/typos.py":{"sha256":"71b1dcce3e92412249556efc50b78c5ae87d9f0b73f1d0f06c9375ac8fe3c8ab"},"datadog_checks_dev/datadog_checks/dev/tooling/config.py":{"sha256":"1522dd49cdd49cd808fe18fc55a94abbf3c57eca5012bae93c0e6cd381dc5d77"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/__init__.py":{"sha256":"a37696bf2dcf872903fe1ed84f7b3adbc3b45b66291e2b3436542c495d4f234e"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/config_block.py":{"sha256":"4eb448f403bee6396bc17bce6053897ef5a69bdcdff6ccfefeeb9519c5c8a14d"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/utils.py":{"sha256":"2e88a21bcf38d3357aa68ab3a3bf688eddc796960be25c3b7952bde36fbb0697"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/validator.py":{"sha256":"f2749d57ab97175ecf9626864e3414e361ab2332802d742f60d97c26a9828a7a"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/validator_errors.py":{"sha256":"e3920ed0847a7537d45fddb5398e657c1742cee9c27cfaf453add2fc795a63fd"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/__init__.py":{"sha256":"7f40321b073a61d5d03139ebf0167051f11838ca7b6242332dabcbbb9bbe325e"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/constants.py":{"sha256":"69dc667a35940e6c488ed9f0197333b6b3e2765bdd1ca5a9bcf23266977a111d"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/__init__.py":{"sha256":"3fad58a28211e9fb13fcab3d29843e726d800c1c2202b87295eb423cfd206046"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/example.py":{"sha256":"86ff8fe1ecd7d0a8a0fbb3d053175ebadc713636fbbbcc528cfbfd8a8d6f0cd5"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/model/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/model/model_consumer.py":{"sha256":"af3adf329489175f6ab6f22710c60b4f2a0dd650250b3653ed032bb63d250696"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/model/model_file.py":{"sha256":"6dbb93d2c46ef27829eab53baa6adb87c9ae3a4e2dfe02733c45e2b1c7fbea45"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/model/model_info.py":{"sha256":"b90c7f6f112cc8c86813bea24d25fcc37bc11255cfb7695364cb87fecda0334b"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/openapi_document.py":{"sha256":"15c28390df75afa8eac070ac96fb73f443a1aedc2828119dd4d05546205906d8"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/core.py":{"sha256":"2580c9a8d48a6bbf00f2413ad65e689fbdc772f9a94ad1ab33ef7960d08d8da6"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/spec.py":{"sha256":"d166dd9667efca90028873ec6639732ec13da76829a795a191d922a611534ff7"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/template.py":{"sha256":"1b47dad5b7f1df41059ec35db383e8a844c295cf46327389fa478433f8b1f624"},"datadog_checks_dev/datadog_checks/dev/tooling/constants.py":{"sha256":"f51256960cf2dd637925f5ce9063a099f975324075da0d658611e6b384cedf46"},"datadog_checks_dev/datadog_checks/dev/tooling/create.py":{"sha256":"ce2aa2331a176dae73be1c62935fe20b3fe2a879020f83c3a1de170aac3a98f4"},"datadog_checks_dev/datadog_checks/dev/tooling/datastructures.py":{"sha256":"58411715d64348e60f964fb58a55481e58a0859a33a75de5eaa86b64ade0bf58"},"datadog_checks_dev/datadog_checks/dev/tooling/dependencies.py":{"sha256":"5c93c0c716f8d11730ae12b87c8f59b945efbc260c7fadb352d649c5b3ab3f37"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/__init__.py":{"sha256":"041770d4abd7a492615e0a23c062ffd3748f7f26678f2abc42450caf6ba7cd0a"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/agent.py":{"sha256":"7039c9dc9f04beb95bde3a244a6747fa5a5ce310495f776def606a021e38b017"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/config.py":{"sha256":"9e0903ce05e4352477233a49dd40d40ff66801fb1acb1c0fdc32b06509341a15"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/core.py":{"sha256":"1f810b8a4b0e9f6b6fb7811a2ee575a499cc2cba2563901d80ff2fdb50c47d81"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/docker.py":{"sha256":"86f7c12634fd946de5076149499f54c14be662eab3169c67dea596f333b0b0a1"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/format.py":{"sha256":"70de3b669c59f3e52961e7251cc110e5e15b88f81a35b95479afa24f512acc18"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/local.py":{"sha256":"13050ed07abb86cf80db545104a3e23c3bb254b5f8ee6498643f27d74718952a"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/platform.py":{"sha256":"dfb3a670a0cc6e64c496f7cd6905650347d80b869630ad7aedab0a4dbbfc5f11"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/run.py":{"sha256":"fb2ce093a1f2e473e000623f4cc2bc51b8dd95f6407c8ecc0bb59c20503e7ea3"},"datadog_checks_dev/datadog_checks/dev/tooling/git.py":{"sha256":"8a430108786d2659caf8e5e22fb3f2f5dc3e41d2ea4461a0dcee79a817cfe93e"},"datadog_checks_dev/datadog_checks/dev/tooling/github.py":{"sha256":"213601f1ca2f8ef9e03ff3d5221de0b610218d65117b6f5cc8661d93b80ca398"},"datadog_checks_dev/datadog_checks/dev/tooling/license_headers.py":{"sha256":"90af3fc8a5118ec0f961ecbd2cb6d250bce0498a07f25d65dcb5803d99e6c5a5"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_utils.py":{"sha256":"0792bbd5f4196392df48dddfc0f369fb75ad81709ddc4fe3d41b3f1c6d0ef846"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/__init__.py":{"sha256":"afb09b643841291ec16223b06f073404a4b1ecf9d1432719f319a75153528b53"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/common/__init__.py":{"sha256":"72811b8621e09b2c2584eef89feee2146cd5cb8e0e775c80c1af031152ebeba4"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/common/validator.py":{"sha256":"de33670fb800f550e557902d15c2afe2f8189d74ff13e926e0db8c2178140981"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/constants.py":{"sha256":"8ddfd4b9bf11df5930e9a8eb343d48cc8e92be019c2baf613ce4dec3860ad9cf"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/v2/__init__.py":{"sha256":"72811b8621e09b2c2584eef89feee2146cd5cb8e0e775c80c1af031152ebeba4"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/v2/migration.py":{"sha256":"83c6442192b8109b46b8fcdd66728a6a3f02ada36441cdbeb6bd6d41eff113b9"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/v2/validator.py":{"sha256":"c4ec194d39fe469a1663c98e7c75b98b913de36ee426d11c90e7a774ecff92a4"},"datadog_checks_dev/datadog_checks/dev/tooling/release.py":{"sha256":"596c82ede4a4ff577e48b93371c8adf763c0eeff4af81fcd61d3a15676190e53"},"datadog_checks_dev/datadog_checks/dev/tooling/signing.py":{"sha256":"8c70be46d3e4a14191abe91bbcf080cc2066f8117f1c1b78fff5031053b72c85"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/ad_identifiers.yaml":{"sha256":"debad2c0564fceaa7bc21481ce43ba4d1309a769ac8fb67e65c707a6b9e49f42"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/common/perf_counters.yaml":{"sha256":"9001b82611b1107c4014161991967e21eb725b251abcb50965c80ca9255b313c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config.yaml":{"sha256":"0b03d07105545af963c8e1d332236612961de12ebc473a917dbfc29d8ec3198b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/db.yaml":{"sha256":"341c52cdd3d44c7540107ee791b6cd0be7f225143a57c930cf33ba87b7e24d1f"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/default.yaml":{"sha256":"d1d899a235b713e1dc277e4e149f03b9caaf3a657c2900776d02f1a5ca54b5c6"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/http.yaml":{"sha256":"b0d3492b6ed3eafa40a5cf23bd9e6a8e4074960e060f7733da4f11b0bc75894f"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/jmx.yaml":{"sha256":"56996f66f2ec8ecbaef25cadad04743760f3d36711bdfbff337f61c4c4616e4f"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/openmetrics.yaml":{"sha256":"5bd455963b3ba5b4e8b1cd835630d06c91231aaa5c88bbba0870c35917ce6df4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/openmetrics_legacy.yaml":{"sha256":"5bd455963b3ba5b4e8b1cd835630d06c91231aaa5c88bbba0870c35917ce6df4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/openmetrics_legacy_base":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/perf_counters.yaml":{"sha256":"b72ab4bf57cda61f33a759905fa6070482e21f174ffd7ca304c2b781d2458ee5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/service.yaml":{"sha256":"9be396dbf8f78327572d7ee1c391f2145cf9140c8241b2788e15278b8208425c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/tags.yaml":{"sha256":"70797d15cfd8c7310cbe428ea21b3717045fc933184431736ab8bcdf4e4773af"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances.yaml":{"sha256":"bab548f2d4f06a84e38c03e5ba71df6b5b4727a9c6fd9b10744d62b1324a3ea9"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/all_integrations.yaml":{"sha256":"de9afd1055fb7e6402e226f9ab1bf51fb3a78d3deeb7eb2dd6e17af4dc3bc78e"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/db.yaml":{"sha256":"a3d238a1d2d313ccc94f8ab95d077312103c89e369b0d444bb141ae97815aa66"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/default.yaml":{"sha256":"ad2523157985ba4af6b02e3b040dac9fc6e1e9279e74d33593a84632296e149a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/global.yaml":{"sha256":"f2372b75408c2516c5d2cf805e9d66cbbba83b62774ebf95bc2a4d6459708413"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/http.yaml":{"sha256":"6ae792c7aa0890ab7dbcd38781808a34871d72b83f3ce9de3d3db831c6dccc8a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/jmx.yaml":{"sha256":"6046c9eb0d2e7063ebdbc93012e69ba3c698ad5092b1c1d4b58217bd4539ea45"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/openmetrics.yaml":{"sha256":"d92ef2fb83ea5073d463a3aa410b8549edb4ddbb2e5ea423c36f2cd4135eaf22"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/openmetrics_legacy.yaml":{"sha256":"f0cc0ba9b5eac9450b9a3f5c96c480dc096badf94aab0bfbbbede5cf5c6f9229"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/openmetrics_legacy_base.yaml":{"sha256":"7b67f8b59ca7f85488a838f0beed74831ee30f1847fad86be9e8ffde3bb7136e"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/pdh_legacy.yaml":{"sha256":"3ea8930990f557d90527ef9a41b7f5c35ad203638cbeb67ef5e2fdc2aee25912"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/perf_counters.yaml":{"sha256":"20666e2e25b311cc7c6c65355a918ff968c4e791506d74f625ac9fcfb1c0522c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/service.yaml":{"sha256":"a2a42e1b8d014caca43db48877828a0f889f2cc16847068862e0f4bd2decb033"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/tags.yaml":{"sha256":"5ae1915ed8f262a3c0db6f554f9a7f5daf52b5705cb50b3c4c2e319692a4925b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/tls.yaml":{"sha256":"98f252624fb180d0087aa60760ef892670ee3fe53066f3ff1e472637bb96c3d4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/logs.yaml":{"sha256":"1182fc46b7d01535900e3b7373eb99b5d51d899fc6a5b827ee81db8c8e54bb8d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/CHANGELOG.md":{"sha256":"cd08a7bcb971c3046e8cf9217f98c19c86e38032c558d8b8ec786c9536f9e9c4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/README.md":{"sha256":"981d74dd2b21b95dd207b2caae08d1dcc79d4cd8bfa0438e4c10f0ad17aeda63"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/assets/configuration/spec.yaml":{"sha256":"2ace40aafc7e0b9f6440d50101b8cecc32ba00d0bc9820e99a2e8632be05170d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"7d5a3f4ecb4ed7c6d6efd236fb0bd94f31b0772472d9db02d4a063e759138222"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/changelog.d/1.added":{"sha256":"38c1fb60f69cf5b525500782b5ac0eaf0b4b8f0fcf4fa6f8cde96d83c316e07c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/__init__.py":{"sha256":"3a342b814bc9e33b34b99058154d75b092d7240e31df938fb73b90d39be0edf5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/__about__.py":{"sha256":"49c83d52895bf69c2ffbf1a32d3c3491961018693f68413bf494c63bbbd59c17"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/__init__.py":{"sha256":"7afb749ce0829e4abed181098d56b8da0a07fbe5444ee8ed7037c04f04feca23"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/check.py":{"sha256":"defbe9c17509f34ca10ce5c16f501c17a71208475b2af6d9302f3cbd608bbcb7"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/__init__.py":{"sha256":"a380172194927e06060e6560bde84d4316decc8a7acb39fa4b909cf952e06852"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/defaults.py":{"sha256":"9072c1a8aa9ba1ac06242d21f76f4aac757d746978d1d49a9a440d45eda64103"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/instance.py":{"sha256":"13bd3f64d4e9f48771cc84fd9b9ece5d9f2eff5353b34900587381e81d1ab435"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/shared.py":{"sha256":"5c43d21e0178045706b3de56810b5be58a45ea3b65bedfc3beed3800819bb278"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/validators.py":{"sha256":"ff8691fdd4c4bc21e4feeab75b714040176265ffe25c6e056c521aec5c0299b5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/data/conf.yaml.example":{"sha256":"5e0de7f83fac0dba09f081681c16e127fb4be027f08eac6166a102268d26efad"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/hatch.toml":{"sha256":"45bcb4cd88549703f8dfedf4779ab85820267ba1eeef064a959ba7de31ce263c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/manifest.json":{"sha256":"7ae62710bdefefd6003b24c55620d5c1444f35bd508dbcb06c7a7e2b433a94d8"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/pyproject.toml":{"sha256":"37da6c7f7bc5c1bacafac16307a2276875546bd08f812b31ab3e3dd2001ebde0"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/tests/__init__.py":{"sha256":"d8dc47fd44c6ab1577c4fc677c41d029c4c6a9aac573ce844297b3fce71bb091"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/tests/conftest.py":{"sha256":"288ab38141b5fc11c7cbcce1d5850b5c85a461969a73a181bd9057a1b2919cf4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/tests/test_unit.py":{"sha256":"9a3a0016b8305670142ae517f7a376f0181578249a6944925dd54b318e0fe347"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/CHANGELOG.md":{"sha256":"cd08a7bcb971c3046e8cf9217f98c19c86e38032c558d8b8ec786c9536f9e9c4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/README.md":{"sha256":"c5ef038605890d7ba9a6448c328506dfc9855a5516459f167614543146ae1f05"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/assets/configuration/spec.yaml":{"sha256":"a7dd7aaa3a27ef53f689ea9e7bd135c97c7071896897a3fac925aec0866c7121"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/changelog.d/1.added":{"sha256":"38c1fb60f69cf5b525500782b5ac0eaf0b4b8f0fcf4fa6f8cde96d83c316e07c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/__init__.py":{"sha256":"3a342b814bc9e33b34b99058154d75b092d7240e31df938fb73b90d39be0edf5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/__about__.py":{"sha256":"49c83d52895bf69c2ffbf1a32d3c3491961018693f68413bf494c63bbbd59c17"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/__init__.py":{"sha256":"4a4f6dea91ffd477a50b09301f706382044f366efe4b3c41e86b039da7842e0a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/__init__.py":{"sha256":"c1e9bb781f20c5dfb6bdafdce5f13c46832e31a23f9fb0ccfec4a2ed83b97d04"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/defaults.py":{"sha256":"96d1babba497ad906b332a2eabbe9178f5df0bc8651e63da2ed99000a0b17190"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/instance.py":{"sha256":"279c7fc0f14b15f06a416338fc333f51ded1c10619d62dcda9c54c4747dc2e6a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/shared.py":{"sha256":"308f28e01943d2c15ddc9b9000695681b4664cc7d504c727b8a19c9d70165ea1"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/validators.py":{"sha256":"d8dc47fd44c6ab1577c4fc677c41d029c4c6a9aac573ce844297b3fce71bb091"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/data/conf.yaml.example":{"sha256":"479c850a145914012425917c62e26c75a4f5f95b99ef6ec0671183a9f821dc32"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/data/metrics.yaml":{"sha256":"529823f85918da2a317d966266cef9fca8c26ed81134ee1bd5b338f649723e83"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/hatch.toml":{"sha256":"45bcb4cd88549703f8dfedf4779ab85820267ba1eeef064a959ba7de31ce263c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/manifest.json":{"sha256":"7d065580bb6f766a35dcabaa881e0d90e7f50ab6e662355178387082208389df"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/pyproject.toml":{"sha256":"37da6c7f7bc5c1bacafac16307a2276875546bd08f812b31ab3e3dd2001ebde0"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/__init__.py":{"sha256":"d8dc47fd44c6ab1577c4fc677c41d029c4c6a9aac573ce844297b3fce71bb091"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/common.py":{"sha256":"7a9fddcbc85c2d0db1d40e126f4b6b632dab83dfd1e771de303d58b9c7468491"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/conftest.py":{"sha256":"3d692efee3524ac1de5a7d116877b84f749674b5e95f0a5eff66d56d1687f860"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/metrics.py":{"sha256":"aa3800824032efd81a9ec139accffbdb326d26389d7b9617251b6738169274fd"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/test_e2e.py":{"sha256":"d52bb59384d89abfbd670e1c92149acbd1a6c21f9ce2209905c115ae253a7b00"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/CHANGELOG.md":{"sha256":"cd08a7bcb971c3046e8cf9217f98c19c86e38032c558d8b8ec786c9536f9e9c4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/README.md":{"sha256":"c142025004870f1db648289bdab2976b6beb160f47c28d941a603d9fd6b3d1bd"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/assets/configuration/spec.yaml":{"sha256":"e678062aba11f1b6a03e2e56a99277e6112c2e06f3dbce0a097cf5cf6b0abc59"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/changelog.d/1.added":{"sha256":"38c1fb60f69cf5b525500782b5ac0eaf0b4b8f0fcf4fa6f8cde96d83c316e07c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/datadog_checks/__init__.py":{"sha256":"3a342b814bc9e33b34b99058154d75b092d7240e31df938fb73b90d39be0edf5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/datadog_checks/{check_name}/__about__.py":{"sha256":"49c83d52895bf69c2ffbf1a32d3c3491961018693f68413bf494c63bbbd59c17"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/datadog_checks/{check_name}/__init__.py":{"sha256":"4a4f6dea91ffd477a50b09301f706382044f366efe4b3c41e86b039da7842e0a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/datadog_checks/{check_name}/data/conf.yaml.example":{"sha256":"4b30c4dc85fd460595889ebc1de22469b97b0ec0b43906d0d750e7af3cdd2aa3"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/manifest.json":{"sha256":"c35469fdaac57a792fd5a389651fccc437d5567288624d9f20bdd044256dcd13"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/pyproject.toml":{"sha256":"36011c4a4765bf613c835a788a3aa6c334a37daa06d459c5195a199a6382590a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/marketplace/IMAGES_README.md":{"sha256":"4eec6290559b12169131832997ddbd496cfe536708fde9b3ccd96879a7f298a1"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/marketplace/README.md":{"sha256":"d1afa7ae5595dd1c1ddf58528318ee82d06cca8a8e8b3c17ca236c2114f28c11"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/CHANGELOG.md":{"sha256":"a94d80ae88154fdce2f874cf02f2f1523ec9765020708c52c21c6182fc132f18"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/README.md":{"sha256":"c40ca8b60758af07470b173ec7780a98da754cceebcd650f56bda650e36eedf2"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/manifest.json":{"sha256":"0bc9b3a1e3cf2c92f7a3f4478da2a1ab719be26ff48f35c09b3ee27e28aba987"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/snmp_tile/snmp_{check_name}/CHANGELOG.md":{"sha256":"a94d80ae88154fdce2f874cf02f2f1523ec9765020708c52c21c6182fc132f18"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/snmp_tile/snmp_{check_name}/README.md":{"sha256":"586fc1f0daf83cb1e523a4cfe654f2cb5c1ea1e62a6cbb2217c94528a03d86ba"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/snmp_tile/snmp_{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/snmp_tile/snmp_{check_name}/manifest.json":{"sha256":"9854a853bc050080597cf21059d8027c84849872d89bad091e7e33f7734ce064"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/CHANGELOG.md":{"sha256":"697b0270a62fc28c87e92cb9b0cda9b4ce448e919b3ea26d12d8331204e05f1b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/README.md":{"sha256":"f55b1ae108249609e86e6e80ec6292f55e5c6cb471472f189cb6cdbaebb18b63"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"9c4f16ce9f369b6da6ce978b08d136e07e35827713259a6dcabea74408844d7d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/manifest.json":{"sha256":"beb03fd2d4d54dbe04f2d31cfcaa88e3e4c348ccd51534c115212d8b53e1e17c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/terraform/gke_config.tf":{"sha256":"29e482b800d5a8dad7bc0fc3f42212e2467ceecdf8601d6aca3d6ad30b9c541c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/terraform/providers.tf":{"sha256":"b99c6d5e4e07431b992580cd437044dd3cb3371b33766cd24497a7cbf16f032f"},"datadog_checks_dev/datadog_checks/dev/tooling/testing.py":{"sha256":"54e43171062fafa83d40898e3338ed38310ca05f80389352b0354149edb45ec0"},"datadog_checks_dev/datadog_checks/dev/tooling/trello.py":{"sha256":"c6b90bbcee84b183d0201456d9f5e04edca0b7872b7a01c58b7d14ccb386e203"},"datadog_checks_dev/datadog_checks/dev/tooling/utils.py":{"sha256":"e2f7c9ce071f20d6ab4abf63040fc617efdc42212485d5642be5f27a92534452"},"datadog_checks_dev/datadog_checks/dev/utils.py":{"sha256":"f267261b76c6d7c7b12461f8e203766506904bc84b235e6636c92e04a1d8d01d"},"datadog_checks_dev/datadog_checks/dev/warn.py":{"sha256":"6445be66a38a2fa46d36dd72b42ad40f7f730353815b33e7a48f0566da7c61fd"},"datadog_checks_dev/pyproject.toml":{"sha256":"09c1142c7c19100ed47b4bae4cc7fef9197bbf23a81493694792a31db7b6e2cb"},"datadog_checks_dev/setup.py":{"sha256":"8d1ee8d90f6efae93c3154cac11180c160a914a49774f856cd4740cb65d595ee"}}}} \ No newline at end of file +{"signatures":[{"keyid":"b9ca7eb3a90f78a8d30ef9bbd529fe2c80aa7129","other_headers":"04000108001d162104b9ca7eb3a90f78a8d30ef9bbd529fe2c80aa71290502668d1e1c","signature":"9d7a7c21666f3616c9e950962de44f0792a0e14b4165fcc8bd1b5c88e70f66990e55f733ca5f97dd4d5caf1f7238504df6c78063f2f24ea58abd651621a023605807ee0fba9d8b3f9ba49f70a26dd0c16642649fc247af5c432f33129aef57e78378a2b86f74916f00d689b2d7a94ea216c8879f34aa94c669e33797433ba32cbd9de1b0828e171f5b88f3415ea2c30d5e6cb1fcec3476f01ae0a7cf215a3c088ce1fc948f1d3266816fcaa9902b4dc4f37ecd6828d148d8bc5d2b8e1eb5f51dac08ad6ecb254444eae15f19ac4935a01afb50dd88531b6f940714da078397bd43047d9c17d28d7f6f9ff9a9cbda144a74b787266a8d547e4a64f33f34433aecc4f75f3bf296a56ba61f0ddff6300d6042cc7ab7e02122d7b9f98aa40f3f68d2820b09a981e7a89748e88983532474d15ba3de9299053a1c91db74d85f502b55aa669581c098c01a0e5cb61ed34bfdeb52be5b7afaffbf509a49a8e504fd4c9b04eb6ae29f7c038bf57d940f48bc907484de0fa210dc5a0c8b4f5e75fc8e1696420dac2178b08991459076cea46023f1bf8054dbb28c9996486abd560d76fe46f9bfa46eeb33f2417da83052aae3f5bce0d378f42e5cc61e9d8f8cb4dca0e7025ed7181132b4b754a111832690b9175870fa7a77df7e35231359e8487cf132efb0f331a56ca2ad4b26232778ecc643313a9a165b9f76c999011ec311b9fad911"}],"signed":{"_type":"link","byproducts":{},"command":[],"environment":{},"materials":{},"name":"tag","products":{"kyverno/datadog_checks/__init__.py":{"sha256":"0f813aa7ba00e61daaefebdf16112adcf5fe306067e54269ae2682923d1da235"},"kyverno/datadog_checks/kyverno/__about__.py":{"sha256":"50cefdc5b2b79bb120a74d06e094d02ba89ea26cbbb489f84d7b901dbcb8d16b"},"kyverno/datadog_checks/kyverno/__init__.py":{"sha256":"f32dbf057be734da7708475a1589d541ad0397c991724ea80c1f6abb759fab5e"},"kyverno/datadog_checks/kyverno/check.py":{"sha256":"0ce69a0fd28acb2874bf7a1debbd5c8fbb4457b51bdda170075d1b641de1583f"},"kyverno/datadog_checks/kyverno/config_models/__init__.py":{"sha256":"34156fd46c47f45e20546d102f352888c153d8fc3746cf28d3e661dda48e7679"},"kyverno/datadog_checks/kyverno/config_models/defaults.py":{"sha256":"126c019d30c8331d9ed96e711c4d4b09ecd14b343a180d3c2480dc0ca8d296cc"},"kyverno/datadog_checks/kyverno/config_models/instance.py":{"sha256":"679027393e71fe189c1abdfb546d2012e20173aa8b67c5510959bf2505e4a4ac"},"kyverno/datadog_checks/kyverno/config_models/shared.py":{"sha256":"9d8db9bc2a34c650d838e5698df45d5fab57ec70f0ff1161f9a9bcf965b94e4e"},"kyverno/datadog_checks/kyverno/config_models/validators.py":{"sha256":"c0a28c6d36da1cf04169bff080476f6f12e3f97064abd4247cb4126adef16b97"},"kyverno/datadog_checks/kyverno/data/conf.yaml.example":{"sha256":"6d64756ff6d6a05d9e9e053dccbc795eb5bf66e5164ee1ad29d20c338a02acf5"},"kyverno/datadog_checks/kyverno/metrics.py":{"sha256":"8ce063ed491567216130313ed22c0c5ca92c19205b9043ec5230f089b2830dbe"},"kyverno/pyproject.toml":{"sha256":"962de3b8052e01c520b3a681a30af1715f2f91b5502587c5c7c5a7277e3fa563"}}}} \ No newline at end of file diff --git a/kyverno/CHANGELOG.md b/kyverno/CHANGELOG.md index 4bcf059838a3e..76437ea99d2be 100644 --- a/kyverno/CHANGELOG.md +++ b/kyverno/CHANGELOG.md @@ -2,3 +2,8 @@ +## 1.0.0 / 2024-07-09 + +***Added***: + +* Initial Release ([#17757](https://github.com/DataDog/integrations-core/pull/17757)) diff --git a/kyverno/changelog.d/17757.added b/kyverno/changelog.d/17757.added deleted file mode 100644 index aa949b47b7b41..0000000000000 --- a/kyverno/changelog.d/17757.added +++ /dev/null @@ -1 +0,0 @@ -Initial Release \ No newline at end of file diff --git a/kyverno/datadog_checks/kyverno/__about__.py b/kyverno/datadog_checks/kyverno/__about__.py index e9541ce83e9e5..acbfd1c866b84 100644 --- a/kyverno/datadog_checks/kyverno/__about__.py +++ b/kyverno/datadog_checks/kyverno/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '0.0.1' +__version__ = '1.0.0' diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index 8e79700a787ad..2df14770c809e 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -102,6 +102,7 @@ datadog-kubelet==7.13.2 datadog-kubernetes-cluster-autoscaler==1.0.1 datadog-kubernetes-state==8.1.1 datadog-kyototycoon==2.5.1 +datadog-kyverno==1.0.0 datadog-lighttpd==3.5.1 datadog-linkerd==4.2.2 datadog-linux-proc-extras==2.5.0; sys_platform == 'linux2' From 27903f95ccc69ca805c61b45d4bb1067142fce7d Mon Sep 17 00:00:00 2001 From: Anthonin Bonnefoy Date: Tue, 9 Jul 2024 17:12:10 +0200 Subject: [PATCH 31/68] Emit dead/live toast rows as gauge (#18009) --- postgres/changelog.d/18009.fixed | 1 + postgres/datadog_checks/postgres/relationsmanager.py | 4 ++-- postgres/metadata.csv | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 postgres/changelog.d/18009.fixed diff --git a/postgres/changelog.d/18009.fixed b/postgres/changelog.d/18009.fixed new file mode 100644 index 0000000000000..6c54bd55f43fc --- /dev/null +++ b/postgres/changelog.d/18009.fixed @@ -0,0 +1 @@ +Emit dead/live toast rows as gauge diff --git a/postgres/datadog_checks/postgres/relationsmanager.py b/postgres/datadog_checks/postgres/relationsmanager.py index a8ec1e3bef1f1..b509c2d0a25dc 100644 --- a/postgres/datadog_checks/postgres/relationsmanager.py +++ b/postgres/datadog_checks/postgres/relationsmanager.py @@ -228,8 +228,8 @@ {'name': 'postgresql.toast.rows_fetched', 'type': 'monotonic_count'}, {'name': 'postgresql.toast.rows_inserted', 'type': 'monotonic_count'}, {'name': 'postgresql.toast.rows_deleted', 'type': 'monotonic_count'}, - {'name': 'postgresql.toast.live_rows', 'type': 'monotonic_count'}, - {'name': 'postgresql.toast.dead_rows', 'type': 'monotonic_count'}, + {'name': 'postgresql.toast.live_rows', 'type': 'gauge'}, + {'name': 'postgresql.toast.dead_rows', 'type': 'gauge'}, {'name': 'postgresql.toast.vacuumed', 'type': 'monotonic_count'}, {'name': 'postgresql.toast.autovacuumed', 'type': 'monotonic_count'}, {'name': 'postgresql.toast.last_vacuum_age', 'type': 'gauge'}, diff --git a/postgres/metadata.csv b/postgres/metadata.csv index 060c22fb45c1b..c7920e38973ce 100644 --- a/postgres/metadata.csv +++ b/postgres/metadata.csv @@ -171,11 +171,11 @@ postgresql.table_size,gauge,,byte,,"Enabled with `relations`. The disk space use postgresql.temp_bytes,gauge,,byte,second,The amount of data written to temporary files by queries in this database. This metric is tagged with db.,0,postgres,temp bytes, postgresql.temp_files,gauge,,file,second,The number of temporary files created by queries in this database. This metric is tagged with db.,0,postgres,temp files, postgresql.toast.autovacuumed,count,,,,"Enabled with `relations`. The number of times the toast table of a relation has been autovacuumed. This metric is tagged with db, schema, table.",0,postgres,toast autovacuumed, -postgresql.toast.dead_rows,count,,,,"Enabled with `relations`. The number of dead rows on the toast table of a relation. This metric is tagged with db, schema, table.",0,postgres,toast dead rows, +postgresql.toast.dead_rows,gauge,,,,"Enabled with `relations`. The number of dead rows on the toast table of a relation. This metric is tagged with db, schema, table.",0,postgres,toast dead rows, postgresql.toast.index_scans,count,,,,"Enabled with `relations`. The number of index scans done on the toast table of a relation. This metric is tagged with db, schema, table.",0,postgres,toast idx scans, postgresql.toast.last_autovacuum_age,gauge,,second,,"Last time at which the toast table of this table was vacuumed by the autovacuum daemon. This metric is tagged with db, schema, table.",0,postgres,toast age autovacuum, postgresql.toast.last_vacuum_age,gauge,,second,,"Last time at which the toast table of this table was manually vacuumed (not counting VACUUM FULL). This metric is tagged with db, schema, table.",0,postgres,toast age vacuum, -postgresql.toast.live_rows,count,,,,"Enabled with `relations`. The number of live rows on the toast table of a relation. This metric is tagged with db, schema, table.",0,postgres,toast live rows, +postgresql.toast.live_rows,gauge,,,,"Enabled with `relations`. The number of live rows on the toast table of a relation. This metric is tagged with db, schema, table.",0,postgres,toast live rows, postgresql.toast.rows_deleted,count,,,,"Enabled with `relations`. The number of deleted rows on the toast table of a relation. This metric is tagged with db, schema, table.",0,postgres,toast rows deleted, postgresql.toast.rows_fetched,count,,,,"Enabled with `relations`. The number of fetched rows on the toast table of a relation. This metric is tagged with db, schema, table.",0,postgres,toast rows fetched, postgresql.toast.rows_inserted,count,,,,"Enabled with `relations`. The number of inserted rows on the toast table of a relation. This metric is tagged with db, schema, table.",0,postgres,toast rows inserted, From e43ebdc0b4d1e7c876ef2657efe4de3c217e20dd Mon Sep 17 00:00:00 2001 From: Thibaud Cheruy Date: Tue, 9 Jul 2024 18:22:46 +0200 Subject: [PATCH 32/68] remove invalid filters (#18010) --- snmp/assets/dashboards/ndm_troubleshooting.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/snmp/assets/dashboards/ndm_troubleshooting.json b/snmp/assets/dashboards/ndm_troubleshooting.json index f8e0864a84f1a..4cc297e401558 100644 --- a/snmp/assets/dashboards/ndm_troubleshooting.json +++ b/snmp/assets/dashboards/ndm_troubleshooting.json @@ -1846,7 +1846,7 @@ "aggregator": "avg", "data_source": "metrics", "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.last{environment:mimic,$Netflow_Exporter} by {exporter_ip,flow_type}.fill(null)" + "query": "sum:datadog.netflow.aggregator.sequence.last{$Netflow_Exporter} by {exporter_ip,flow_type}.fill(null)" } ], "response_format": "scalar" @@ -2672,12 +2672,12 @@ { "data_source": "metrics", "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.delta{environment:mimic,$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" }, { "data_source": "metrics", "name": "query2", - "query": "sum:datadog.netflow.processor.flowsets{environment:mimic,$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + "query": "sum:datadog.netflow.processor.flowsets{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" } ], "response_format": "timeseries", @@ -2724,12 +2724,12 @@ { "data_source": "metrics", "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.delta{environment:mimic,$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" }, { "data_source": "metrics", "name": "query2", - "query": "sum:datadog.netflow.processor.processed{environment:mimic,$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + "query": "sum:datadog.netflow.processor.processed{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" } ], "response_format": "timeseries", @@ -2776,7 +2776,7 @@ { "data_source": "metrics", "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.delta{environment:mimic,$Netflow_Exporter} by {exporter_ip,flow_type}.as_count().fill(null)" + "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip,flow_type}.as_count().fill(null)" } ], "response_format": "timeseries", @@ -2823,7 +2823,7 @@ { "data_source": "metrics", "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.reset{environment:mimic,$Netflow_Exporter} by {exporter_ip,flow_type}.fill(null)" + "query": "sum:datadog.netflow.aggregator.sequence.reset{$Netflow_Exporter} by {exporter_ip,flow_type}.fill(null)" } ], "response_format": "timeseries", From d1ad3d566af3065986e1209b99770a5efc7c454a Mon Sep 17 00:00:00 2001 From: Steven Yuen Date: Tue, 9 Jul 2024 14:47:08 -0400 Subject: [PATCH 33/68] Sy/istio assets (#17998) * WIP assets * rec monitors * rec monitors * dash nits * Update istio/assets/dashboards/overview.json Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com> * Update istio/assets/dashboards/overview.json Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com> * Update istio/assets/dashboards/overview.json Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com> --------- Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com> --- istio/assets/dashboards/overview.json | 3855 +++++++++++++++++ istio/assets/monitors/request_error_rate.json | 33 + .../assets/monitors/xds_push_error_rate.json | 33 + istio/manifest.json | 7 +- 4 files changed, 3926 insertions(+), 2 deletions(-) create mode 100644 istio/assets/dashboards/overview.json create mode 100644 istio/assets/monitors/request_error_rate.json create mode 100644 istio/assets/monitors/xds_push_error_rate.json diff --git a/istio/assets/dashboards/overview.json b/istio/assets/dashboards/overview.json new file mode 100644 index 0000000000000..ff03ba37b1a16 --- /dev/null +++ b/istio/assets/dashboards/overview.json @@ -0,0 +1,3855 @@ +{ + "author_name": "Datadog", + "description": "Istio is a Kubernetes-based, open source service mesh that provides advanced networking, security, and observability features for microservices in a cloud-native environment. This dashboard is crafted to provide you with an overview of, detailed information about, and performance data for your Istio services.\n\n**Further reading:**\n\n- [Datadog Istio Integration Documentation](https://docs.datadoghq.com/integrations/istio/)\n- [Istio Docs](https://istio.io/latest/)\n- [Istio Metrics Docs](https://istio.io/latest/docs/reference/config/metrics/)", + "layout_type": "ordered", + "template_variables": [ + { + "available_values": [], + "default": "pilot", + "name": "istiod_image", + "prefix": "short_image" + }, + { + "available_values": [], + "default": "proxyv2", + "name": "istio_proxy_image", + "prefix": "short_image" + }, + { + "available_values": [], + "default": "*", + "name": "cluster_name", + "prefix": "kube_cluster_name" + }, + { + "available_values": [], + "default": "*", + "name": "destination_service_name", + "prefix": "destination_service_name" + }, + { + "available_values": [], + "default": "*", + "name": "destination_service", + "prefix": "destination_service" + }, + { + "available_values": [], + "default": "*", + "name": "destination_workload_namespace", + "prefix": "destination_workload_namespace" + }, + { + "available_values": [], + "default": "*", + "name": "destination_workload", + "prefix": "destination_workload" + }, + { + "available_values": [], + "default": "*", + "name": "source_workload", + "prefix": "source_workload" + }, + { + "available_values": [], + "default": "*", + "name": "source_workload_namespace", + "prefix": "source_workload_namespace" + }, + { + "available_values": [], + "default": "*", + "name": "response_code", + "prefix": "status_code" + } + ], + "title": "Istio Overview", + "widgets": [ + { + "definition": { + "layout_type": "ordered", + "show_title": true, + "title": "", + "type": "group", + "widgets": [ + { + "definition": { + "has_background": true, + "has_border": false, + "horizontal_align": "center", + "sizing": "cover", + "type": "image", + "url": "/static/images/logos/istio_large.svg", + "url_dark_theme": "/static/images/logos/istio_reversed_large.svg", + "vertical_align": "center" + }, + "id": 2192576039659578, + "layout": { + "height": 3, + "width": 6, + "x": 0, + "y": 0 + } + }, + { + "definition": { + "background_color": "transparent", + "content": "Istio is a Kubernetes-based, open source service mesh that provides advanced networking, security, and observability features for microservices in a cloud-native environment. This dashboard is crafted to provide you with an overview of, detailed information about, and performance data for your Istio services.", + "font_size": "14", + "has_padding": true, + "show_tick": false, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 4559139518898252, + "layout": { + "height": 2, + "width": 6, + "x": 0, + "y": 3 + } + }, + { + "definition": { + "background_color": "transparent", + "content": "**Further reading:**\n\n- [Datadog Istio Integration Documentation](https://docs.datadoghq.com/integrations/istio/)\n- [Istio Docs](https://istio.io/latest/)\n- [Istio Metrics Docs](https://istio.io/latest/docs/reference/config/metrics/)", + "font_size": "14", + "has_padding": true, + "show_tick": false, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 1358687777465532, + "layout": { + "height": 2, + "width": 6, + "x": 0, + "y": 5 + } + } + ] + }, + "id": 1750497109975664, + "layout": { + "height": 8, + "width": 6, + "x": 0, + "y": 0 + } + }, + { + "definition": { + "background_color": "vivid_blue", + "layout_type": "ordered", + "show_title": true, + "title": "Istio Monitoring Overview", + "type": "group", + "widgets": [ + { + "definition": { + "background_color": "blue", + "content": "Istio Overview shows a summary of all reporting Istio instances, as well as related monitors and their statuses.", + "font_size": "14", + "has_padding": true, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 4493765391477664, + "layout": { + "height": 1, + "width": 6, + "x": 0, + "y": 0 + } + }, + { + "definition": { + "autoscale": true, + "precision": 2, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "count:kubernetes.containers.running{$istiod_image,$cluster_name}" + } + ], + "response_format": "scalar" + } + ], + "title": "Istiod Instances", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 5086027032989668, + "layout": { + "height": 2, + "width": 3, + "x": 0, + "y": 1 + } + }, + { + "definition": { + "autoscale": true, + "precision": 2, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "count:kubernetes.containers.running{$istio_proxy_image,$cluster_name}" + } + ], + "response_format": "scalar" + } + ], + "title": "Istio Proxy Instances", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 8580626733162374, + "layout": { + "height": 2, + "width": 3, + "x": 3, + "y": 1 + } + }, + { + "definition": { + "color_preference": "text", + "count": 50, + "display_format": "countsAndList", + "hide_zero_counts": true, + "query": "Istio", + "show_last_triggered": false, + "show_priority": false, + "sort": "status,asc", + "start": 0, + "summary_type": "monitors", + "title": "Istio Monitor Summary", + "type": "manage_status" + }, + "id": 2729417714992040, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 3 + } + } + ] + }, + "id": 3634066390776612, + "layout": { + "height": 8, + "width": 6, + "x": 6, + "y": 0 + } + }, + { + "definition": { + "background_color": "vivid_blue", + "layout_type": "ordered", + "show_title": true, + "title": "Istiod", + "type": "group", + "widgets": [ + { + "definition": { + "background_color": "blue", + "content": "Citadel Stats\n\nMetrics for security and identity management", + "font_size": "16", + "has_padding": false, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 3627922134121938, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 0 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Requests Received", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.citadel.server.csr_count.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Cert Signing Requests Received", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 4422363340888746, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 1 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Certs Issued", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.citadel.server.success_cert_issuance_count.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Cert Successfully Issued", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 5361710131825236, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 1 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Success Rate", + "formula": "query2 / query1 * 100", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.citadel.server.success_cert_issuance_count.sum{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.citadel.server.csr_count.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Cert Issuance Success Rate", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2045196564988994, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 1 + } + }, + { + "definition": { + "background_color": "blue", + "content": "Galley Stats\n\nMetrics for configuration validation, distribution, and discovery", + "font_size": "16", + "has_padding": false, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 8816077523674974, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 4 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Events Processed", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.galley.runtime_processor.events_processed.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Events Processed", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1235689914365076, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 5 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Snapshots published", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.galley.runtime_processor.snapshots_published.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Snapshot Published", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 8908168037129674, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 5 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.galley.validation.passed.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + }, + "palette": "dog_classic" + }, + "title": "Resource Validation Passes", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 5500579784685662, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 5 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Configs Updated", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.galley.validation.config_update.count{$cluster_name,$istiod_image}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Webhook Configuration Updates", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2136467378227916, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 8 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Update Errors", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.galley.validation.config_update_error.count{$cluster_name,$istiod_image}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Webhook Configuration Update Errors", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3522568668961966, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 8 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.galley.validation.failed.count{$cluster_name,$istiod_image} by {reason}.as_count()" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + }, + "palette": "dog_classic" + }, + "title": "Resource Validation Failures", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 3763553681295482, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 8 + } + }, + { + "definition": { + "background_color": "blue", + "content": "Pilot Stats\n\nMetrics for service discovery, configuration distribution to Envoy proxies, traffic management, and resiliency features", + "font_size": "16", + "has_padding": false, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 6970496165669798, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 11 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "xDS Pushes", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.xds.pushes.count{$cluster_name,$istiod_image} by {kube_cluster_name,type}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "xDS Pushes", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 4245198672419888, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 12 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Send Errors", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.xds.pushes.count{$cluster_name,$istiod_image,type:*senderr} by {kube_cluster_name,type}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "warm" + } + } + ], + "show_legend": true, + "title": "xDS Pushes Errors", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2416271735897122, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 12 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query2 / query1", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.pilot.xds.pushes.count{$cluster_name,$istiod_image,type:*senderr} by {kube_cluster_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.xds.pushes.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "red" + } + } + ], + "show_legend": true, + "title": "xDS Push Error Rate", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 5891948212949074, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 12 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Envoy Clusters", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.pilot.duplicate_envoy_clusters{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Duplicate Envoy Clusters", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 7168533379665800, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 15 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Services", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.services{$cluster_name,$istiod_image} by {kube_cluster_name}.fill(null)" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Services Known to Pilot", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6917840161139368, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 15 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Push Triggers", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.push.triggers.count{$cluster_name,$istiod_image} by {type,kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Push Triggers", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 7280351189474090, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 15 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Updates Received", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.inbound_updates.count{$cluster_name,$istiod_image} by {type,kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Inbound Updates Received", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 7912852234152576, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 18 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Events Received", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.k8s.cfg_events.count{$cluster_name,$istiod_image} by {type,event,kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Kubernetes Configuration Events Received", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6385890192194846, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 18 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Inbound Listeners", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.conflict.inbound_listener{$cluster_name,$istiod_image}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Conflicting Inbound Listeners", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 627560008960808, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 18 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.pilot.no_ip{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + }, + "palette": "dog_classic" + }, + "title": "Pods Not in Endpoint Table", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 6497335918580626, + "layout": { + "height": 4, + "width": 2, + "x": 0, + "y": 21 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.pilot.destrule_subsets{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + }, + "palette": "dog_classic" + }, + "title": "Duplicate Subsets", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 2751676326368262, + "layout": { + "height": 4, + "width": 2, + "x": 2, + "y": 21 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.pilot.eds_no_instances{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + } + }, + "title": "Clusters Without EDS Instances", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 246806102548318, + "layout": { + "height": 4, + "width": 2, + "x": 4, + "y": 21 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.pilot.conflict.outbound_listener.http_over_current_tcp{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + }, + "palette": "dog_classic" + }, + "title": "Conflicting Wildcard http Listeners", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 1143161583498956, + "layout": { + "height": 4, + "width": 2, + "x": 6, + "y": 21 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.virt_services{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + }, + "palette": "dog_classic" + }, + "title": "Virtual Services", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 4225916981982476, + "layout": { + "height": 4, + "width": 2, + "x": 8, + "y": 21 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.vservice_dup_domain{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + }, + "palette": "dog_classic" + }, + "title": "Virtual Services with Duplicate Domains", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 5912405031057558, + "layout": { + "height": 4, + "width": 2, + "x": 10, + "y": 21 + } + }, + { + "definition": { + "background_color": "blue", + "content": "Endpoint Stats", + "font_size": "18", + "has_padding": true, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 6335743618824886, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 25 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Without Pods", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.galley.endpoint_no_pod{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Endpoints without Pods", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 480404961300200, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 26 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Not Ready", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.pilot.endpoint_not_ready{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Endpoints not Ready", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3295607529193048, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 26 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Using XDS", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.xds{$cluster_name,$istiod_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Endpoints Using xDS", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1747118352723258, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 26 + } + }, + { + "definition": { + "background_color": "blue", + "content": "Latency Stats", + "font_size": "18", + "has_padding": true, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 8828435255005804, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 29 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Push Latency", + "formula": "autosmooth(query1 / query2)", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "second" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.xds.push.time.sum{$cluster_name,$istiod_image} by {type}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.pilot.xds.push.time.count{$cluster_name,$istiod_image} by {type}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "XDS Push", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 4858650798546170, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 30 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "In Queue Latency", + "formula": "query1 / query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.proxy_queue_time.sum{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.pilot.proxy_queue_time.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Time Proxy is in Push Queue", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1636856362300, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 30 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Config Change Latency", + "formula": "query1 / query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.pilot.proxy_convergence_time.sum{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.pilot.proxy_convergence_time.count{$cluster_name,$istiod_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Proxy Convergence Config Change", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2615643406003470, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 30 + } + }, + { + "definition": { + "background_color": "blue", + "content": "Sidecar Stats", + "font_size": "18", + "has_padding": true, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 3419796175501478, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 33 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Injection Requests", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.sidecar_injection.requests.count{$cluster_name,$istiod_image}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Sidecar Injection Requests", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2111826177063454, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 34 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Sidecar Injections", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.sidecar_injection.success.count{$cluster_name,$istiod_image}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Succesful Injection Requests", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 5358928247276534, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 34 + } + }, + { + "definition": { + "custom_links": [], + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Failed Injections", + "formula": "query1" + }, + { + "alias": "Skipped Injections", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.sidecar_injection.failure.count{$cluster_name,$istiod_image}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.sidecar_injection.skip.count{$cluster_name,$istiod_image}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "Failed or Skipped Sidecar Injection Requests", + "title_align": "left", + "title_size": "16", + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } + }, + "id": 5252419092822202, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 34 + } + }, + { + "definition": { + "background_color": "blue", + "content": "Istiod Logs", + "font_size": "18", + "has_padding": true, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 1375658328165226, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 37 + } + }, + { + "definition": { + "requests": [ + { + "columns": [ + { + "field": "status_line", + "width": "auto" + }, + { + "field": "matches", + "width": "auto" + }, + { + "field": "volume", + "width": "auto" + }, + { + "field": "status", + "width": "auto" + }, + { + "field": "service", + "width": "auto" + }, + { + "field": "message", + "width": "auto" + } + ], + "query": { + "data_source": "logs_pattern_stream", + "group_by": [ + { + "facet": "status" + }, + { + "facet": "service" + } + ], + "indexes": [], + "query_string": "source:$istiod_image.value kube_cluster_name:$cluster_name.value " + }, + "response_format": "event_list" + } + ], + "title": "", + "title_align": "left", + "title_size": "16", + "type": "list_stream" + }, + "id": 4188771970394504, + "layout": { + "height": 5, + "width": 12, + "x": 0, + "y": 38 + } + } + ] + }, + "id": 3915105066981490, + "layout": { + "height": 44, + "width": 12, + "x": 0, + "y": 8 + } + }, + { + "definition": { + "background_color": "vivid_blue", + "layout_type": "ordered", + "show_title": true, + "title": "Istio Proxy", + "type": "group", + "widgets": [ + { + "definition": { + "background_color": "blue", + "content": "Requests and Responses\n\nMetrics for both requests and responses. These metrics help monitor the performance and behavior of the traffic within the service mesh.", + "font_size": "16", + "has_padding": false, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 1021322802120984, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 0 + } + }, + { + "definition": { + "legend": { + "type": "automatic" + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "sum", + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.request.count.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace,$response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + }, + "style": { + "palette": "semantic" + } + } + ], + "title": "Requests Count", + "title_align": "left", + "title_size": "16", + "type": "sunburst" + }, + "id": 4718569899162558, + "layout": { + "height": 4, + "width": 12, + "x": 0, + "y": 1 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Okay Requests", + "formula": "query1", + "style": { + "palette": "cool" + } + }, + { + "alias": "Failed Requests", + "formula": "query2", + "style": { + "palette": "warm" + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.request.count.total{(response_code:2* OR response_code:3*) AND $cluster_name AND $istio_proxy_image AND $destination_service_name AND $destination_service AND $destination_workload_namespace AND $destination_workload AND $source_workload AND $source_workload_namespace AND $response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.mesh.request.count.total{(response_code:4* OR response_code:5* OR response_code:0) AND $cluster_name AND $istio_proxy_image AND $destination_service_name AND $destination_service AND $destination_workload_namespace AND $destination_workload AND $source_workload AND $source_workload_namespace AND $response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Requests Count", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 992999333859954, + "layout": { + "height": 4, + "width": 12, + "x": 0, + "y": 5 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Request Errors", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.request.count.total{(response_code:4* OR response_code:5* OR response_code:0) AND $cluster_name AND $istio_proxy_image AND $destination_service_name AND $destination_service AND $destination_workload_namespace AND $destination_workload AND $source_workload AND $source_workload_namespace AND $response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "warm" + } + } + ], + "show_legend": true, + "title": "Requests Error Count", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2333921351693680, + "layout": { + "height": 4, + "width": 8, + "x": 0, + "y": 9 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Error Percentage", + "formula": "(query2 / query1) * 100", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.mesh.request.count.total{(response_code:4* OR response_code:5* OR response_code:0) AND $cluster_name AND $istio_proxy_image AND $destination_service_name AND $destination_service AND $destination_workload_namespace AND $destination_workload AND $source_workload AND $source_workload_namespace AND $response_code}.as_count()" + }, + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.request.count.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace,$response_code}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "red" + } + } + ], + "show_legend": true, + "title": "Requests Errors Percent", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2578742449760160, + "layout": { + "height": 4, + "width": 4, + "x": 8, + "y": 9 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Average Request Size", + "formula": "query1 / query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.request.size.sum.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace,$response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.mesh.request.size.count.total{$cluster_name,upper_bound:none,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace,$response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Request Size", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 8424224632319624, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 13 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Average Request Latency", + "formula": "query1 / query2", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "millisecond" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.request.duration.milliseconds.sum.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace,$response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.mesh.request.duration.milliseconds.count.total{$cluster_name,upper_bound:none,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace,$response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Request Latency", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3211728510006402, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 13 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Average Response Size", + "formula": "query1 / query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.response.size.sum.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace,$response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.mesh.response.size.count.total{$cluster_name,upper_bound:none,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace,$response_code} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,response_code,destination_service_name,destination_service_namespace,destination_version}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Response Size", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1205930886238800, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 13 + } + }, + { + "definition": { + "background_color": "blue", + "content": "TCP Stats", + "font_size": "18", + "has_padding": true, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 8852160322492380, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 16 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Connections Opened", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.tcp.connections_opened.total.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,destination_service_name,destination_service_namespace,destination_version,host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Connections Opened", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1007378854095042, + "layout": { + "height": 3, + "width": 6, + "x": 0, + "y": 17 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Connection Closed", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.tcp.connections_closed.total.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,destination_service_name,destination_service_namespace,destination_version,host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Connection Closed", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6305179201802850, + "layout": { + "height": 3, + "width": 6, + "x": 6, + "y": 17 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Bytes Received", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.tcp.received_bytes.total.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,destination_service_name,destination_service_namespace,destination_version,host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Bytes Received", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3680746287476284, + "layout": { + "height": 3, + "width": 6, + "x": 0, + "y": 20 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Bytes Sent", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.tcp.send_bytes.total.total{$cluster_name,$istio_proxy_image,$destination_service_name,$destination_service,$destination_workload_namespace,$destination_workload,$source_workload,$source_workload_namespace} by {destination_service,source_workload,source_workload_namespace,destination_workload,destination_workload_namespace,destination_service_name,destination_service_namespace,destination_version,host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Bytes Sent", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6093198942495060, + "layout": { + "height": 3, + "width": 6, + "x": 6, + "y": 20 + } + }, + { + "definition": { + "background_color": "blue", + "content": "Pilot Agent\n\nIstio Pilot agent runs alongside the application container within the same pod and is responsible for managing the Istio sidecar proxy", + "font_size": "16", + "has_padding": false, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 4343335632101298, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 23 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "XDS Errors", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.pilot.xds.pushes.total{$cluster_name,$istio_proxy_image} by {type,kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "xDS Build and Send Errors", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2866530856510654, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 24 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "XDS Push Latency", + "formula": "query1 / query2", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "second" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.pilot.xds.push_time.sum.total{$cluster_name,$istio_proxy_image} by {kube_cluster_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.mesh.agent.pilot.xds.push_time.count.total{upper_bound:none,$cluster_name,$istio_proxy_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "xDS Push Latency", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6130658737323934, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 24 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "XDS Send Latency", + "formula": "query1 / query2", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "second" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.pilot.xds.send_time.sum.total{$cluster_name,$istio_proxy_image} by {kube_cluster_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.mesh.agent.pilot.xds.send_time.count.total{upper_bound:none,$cluster_name,$istio_proxy_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "xDS Send Time Latency ", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1172210687345970, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 24 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Endpoints Without Pods", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.endpoint_no_pod{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Endpoints Without Pods", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6256000834898634, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 27 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "XDS Endpoints", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.pilot.xds{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Endpoints Using xDS", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6571235405199462, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 27 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Endpoint Not Ready", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.pilot.endpoint_not_ready{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Endpoints Not Ready", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 7474998809796252, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 27 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Outgoing Requests", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.num_outgoing_requests.total{$cluster_name,$istio_proxy_image} by {request_type,kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Outgoing Requests", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3539640039648994, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 30 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Outgoing Latency", + "formula": "query1", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "millisecond" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.outgoing_latency.total{$cluster_name,$istio_proxy_image} by {request_type,kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Outgoing Latency", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6015274400415964, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 30 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Inbound Listeners", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.conflict.inbound_listener{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Conflicting Inbound Listeners", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1330553722561094, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 30 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Startup Duration", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.startup_duration_seconds{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Startup Duration", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 8892246811042650, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 33 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Duplicate Envoy Clusters", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.pilot.duplicate_envoy_clusters{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Duplicate Envoy Clusters", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 946034440299884, + "layout": { + "height": 3, + "width": 4, + "x": 4, + "y": 33 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Average XDS Config Size", + "formula": "query1 / query2", + "number_format": { + "unit": { + "label": "bytes", + "type": "custom_unit_label" + } + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:istio.mesh.agent.pilot.xds.config_size_bytes.sum.total{$cluster_name,$istio_proxy_image} by {kube_cluster_name}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:istio.mesh.agent.pilot.xds.config_size_bytes.count.total{upper_bound:none,$cluster_name,$istio_proxy_image} by {kube_cluster_name}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "order_by": "values", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Configuration Sized Pushed to Clients", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1825657963147926, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 33 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.pilot.no_ip{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + } + }, + "title": "Pods Not in Endpoint Table", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 6664882467823550, + "layout": { + "height": 4, + "width": 2, + "x": 0, + "y": 36 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.pilot.destrule_subsets{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + } + }, + "title": "Duplicate Subsets", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 2764452015327688, + "layout": { + "height": 4, + "width": 2, + "x": 2, + "y": 36 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.pilot.eds_no_instances{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + } + }, + "title": "Clusters without EDS Instances", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 355379840024986, + "layout": { + "height": 4, + "width": 2, + "x": 4, + "y": 36 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.conflict.outbound_listener.tcp_over_current_tcp{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + } + }, + "title": "Conflicting TCP Listeners", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 7634492193551210, + "layout": { + "height": 4, + "width": 2, + "x": 6, + "y": 36 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.pilot.virt_services{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + } + }, + "title": "Virtual Services", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 6135763419099144, + "layout": { + "height": 4, + "width": 2, + "x": 8, + "y": 36 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "avg:istio.mesh.agent.wasm_cache_entries{$cluster_name,$istio_proxy_image} by {kube_cluster_name}" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": { + "display": { + "legend": "automatic", + "type": "stacked" + } + }, + "title": "Wasm Fetch Cache Entries", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 4103579371186386, + "layout": { + "height": 4, + "width": 2, + "x": 10, + "y": 36 + } + }, + { + "definition": { + "background_color": "blue", + "content": "Istio Proxy Logs\n", + "font_size": "18", + "has_padding": true, + "show_tick": false, + "text_align": "center", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 465279829336880, + "layout": { + "height": 1, + "width": 12, + "x": 0, + "y": 40 + } + }, + { + "definition": { + "requests": [ + { + "columns": [ + { + "field": "status_line", + "width": "auto" + }, + { + "field": "matches", + "width": "auto" + }, + { + "field": "volume", + "width": "auto" + }, + { + "field": "status", + "width": "auto" + }, + { + "field": "service", + "width": "auto" + }, + { + "field": "message", + "width": "auto" + } + ], + "query": { + "data_source": "logs_pattern_stream", + "group_by": [ + { + "facet": "status" + }, + { + "facet": "service" + } + ], + "indexes": [], + "query_string": "source:$istio_proxy_image.value kube_cluster_name:$cluster_name.value " + }, + "response_format": "event_list" + } + ], + "title": "Istio Proxy Logs", + "title_align": "left", + "title_size": "16", + "type": "list_stream" + }, + "id": 4102134957051482, + "layout": { + "height": 5, + "width": 12, + "x": 0, + "y": 41 + } + } + ] + }, + "id": 2451034760154916, + "layout": { + "height": 47, + "is_column_break": true, + "width": 12, + "x": 0, + "y": 52 + } + } + ] +} \ No newline at end of file diff --git a/istio/assets/monitors/request_error_rate.json b/istio/assets/monitors/request_error_rate.json new file mode 100644 index 0000000000000..07cc1745124ac --- /dev/null +++ b/istio/assets/monitors/request_error_rate.json @@ -0,0 +1,33 @@ +{ + "version": 2, + "created_at": "2024-07-08", + "last_updated_at": "2024-07-08", + "title": "Istio Proxy Requests Error Percentage", + "tags": [ + "integration:istio" + ], + "description": "The request count metric shows throughput between services in your mesh, incrementing with each HTTP or gRPC request an Envoy sidecar receives. This monitor alerts if over 40% of requests get 5xx, 4xx, or 0 status codes in the last 15 minutes, indicating possible issues.", + "definition": { + "message": "{{#is_alert}}\n\nIstio Proxy requests are reporting a high error percentage in {{cluster_name.name}}. This indicates that greater than 40% of requests are getting a status code of 5xx, 4xx or 0 in the last 15 minutes.\n\n{{/is_alert}}", + "name": "[Istio] Proxy Requests Error Percentage", + "options": { + "thresholds": { + "critical": 40 + }, + "notify_audit": false, + "include_tags": true, + "new_group_delay": 60, + "silenced": {}, + "avalanche_window": 10, + "notify_no_data": false, + "renotify_interval": 0, + "require_full_window": false + }, + "priority": null, + "query": "sum(last_15m):sum:istio.mesh.request.count.total{(response_code:4* OR response_code:5* OR response_code:0)} by {cluster_name}.as_count() / sum:istio.mesh.request.count.total{*} by {cluster_name}.as_count() * 100 > 40", + "tags": [ + "integration:istio" + ], + "type": "query alert" + } +} \ No newline at end of file diff --git a/istio/assets/monitors/xds_push_error_rate.json b/istio/assets/monitors/xds_push_error_rate.json new file mode 100644 index 0000000000000..0e3139639a727 --- /dev/null +++ b/istio/assets/monitors/xds_push_error_rate.json @@ -0,0 +1,33 @@ +{ + "version": 2, + "created_at": "2024-07-08", + "last_updated_at": "2024-07-08", + "title": "Istio xDS Push Error Rate", + "tags": [ + "integration:istio" + ], + "description": "Pilot pushes configuration changes to Envoy proxies using Envoy’s xDS APIs. This monitor alerts you when the xDS push error rate is high, indicating that Istio may be having trouble with xDS messages, which can impact the stability and performance of the entire service mesh.", + "definition": { + "message": "{{#is_alert}}\n\nIstio is reporting a high xDS push error rate of {{value}}% in the last 15 minutes in {{kube_cluster_name.name}}. This could indicate that Istio is having trouble creating or pushing messages to the different xDS APIs.\n\n{{/is_alert}}", + "name": "[Istio] xDS Push Error Rate", + "options": { + "thresholds": { + "critical": 25 + }, + "notify_audit": false, + "include_tags": true, + "new_group_delay": 60, + "silenced": {}, + "avalanche_window": 10, + "notify_no_data": false, + "renotify_interval": 0, + "require_full_window": false + }, + "priority": null, + "query": "sum(last_15m):sum:istio.pilot.xds.pushes.count{type:*senderr} by {kube_cluster_name}.as_count() / sum:istio.pilot.xds.pushes.count{*} by {kube_cluster_name}.as_count() * 100 > 25", + "tags": [ + "integration:istio" + ], + "type": "query alert" + } +} \ No newline at end of file diff --git a/istio/manifest.json b/istio/manifest.json index b3c362f058807..268a4d1f24afe 100644 --- a/istio/manifest.json +++ b/istio/manifest.json @@ -60,10 +60,13 @@ "dashboards": { "Istio base dashboard": "assets/dashboards/istio_overview.json", "Istio Overview 1.5": "assets/dashboards/istio_1_5_overview.json", - "Istio Overview 1.5 (OpenMetrics)": "assets/dashboards/istio_1_5_openmetrics_overview.json" + "Istio Overview 1.5 (OpenMetrics)": "assets/dashboards/istio_1_5_openmetrics_overview.json", + "Istio Overview": "assets/dashboards/overview.json" }, "monitors": { - "Failed sidecar injections": "assets/monitors/failed_sidecar_injection.json" + "Failed sidecar injections": "assets/monitors/failed_sidecar_injection.json", + "xDS Push Error Rate": "assets/monitors/xds_push_error_rate.json", + "Istio Proxy Requests Error Percentage": "assets/monitors/request_error_rate.json" }, "saved_views": { "Istio Overview": "assets/saved_views/istio_overview.json", From 7c348d468e843792ed770353762a0e3a9f5f7eef Mon Sep 17 00:00:00 2001 From: Derek Brown Date: Tue, 9 Jul 2024 15:08:46 -0700 Subject: [PATCH 34/68] add default monitor for wincrashdetect (#18011) * add default monitor for wincrashdetect * review feedback * missing field * Update wincrashdetect/assets/monitors/windows_crash.json Co-authored-by: May Lee --------- Co-authored-by: May Lee --- .../assets/monitors/windows_crash.json | 35 +++++++++++++++++++ wincrashdetect/manifest.json | 3 ++ 2 files changed, 38 insertions(+) create mode 100644 wincrashdetect/assets/monitors/windows_crash.json diff --git a/wincrashdetect/assets/monitors/windows_crash.json b/wincrashdetect/assets/monitors/windows_crash.json new file mode 100644 index 0000000000000..6e56d3389482b --- /dev/null +++ b/wincrashdetect/assets/monitors/windows_crash.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-07-09", + "last_updated_at": "2024-07-09", + "title": "Windows Crash Detection", + "tags": [ + "integration:wincrashdetect" + ], + "description": "The Windows Crash Detection check sends an event if a new crash dump file is detected on Agent startup. This monitor alerts when a crash is detected.", + "definition": { + "name": "A Windows system crash has been detected", + "type": "event-v2 alert", + "query": "events(\"source:windows_crash_detection\").rollup(\"count\").by(\"host\").last(\"10m\") > 0", + "message": "{{#is_alert}}\n\nThe Windows Crash Detection integration is reporting that a system crash occurred on Windows host {{host.name}}\n\n{{/is_alert}}", + "tags": [ + "integration:wincrashdetect" + ], + "options": { + "thresholds": { + "critical": 0 + }, + "enable_logs_sample": false, + "notify_audit": false, + "include_tags": true, + "new_group_delay": 60, + "groupby_simple_monitor": false, + "silenced": {}, + "avalanche_window": 20 + }, + "priority": 2, + "restriction_policy": { + "bindings": [] + } + } +} \ No newline at end of file diff --git a/wincrashdetect/manifest.json b/wincrashdetect/manifest.json index 80b9d0bfcab90..1a33d7b5b3494 100644 --- a/wincrashdetect/manifest.json +++ b/wincrashdetect/manifest.json @@ -34,6 +34,9 @@ }, "source_type_id": 10389, "auto_install": true + }, + "monitors": { + "windows_crash": "assets/monitors/windows_crash.json" } } } \ No newline at end of file From 115cfa8c44005e658ee1d993ad942d6484e03809 Mon Sep 17 00:00:00 2001 From: Austin Lai <76412946+alai97@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:21:33 -0700 Subject: [PATCH 35/68] Code Formatting Nit (#18012) --- argo_rollouts/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/argo_rollouts/README.md b/argo_rollouts/README.md index 4e7324a4212e1..3b2ec9d3fcab0 100644 --- a/argo_rollouts/README.md +++ b/argo_rollouts/README.md @@ -36,7 +36,7 @@ metadata: "init_config": {}, "instances": [ { - "openmetrics_endpoint": "http://%%host%%:8090/metrics", + "openmetrics_endpoint": "http://%%host%%:8090/metrics" } ] } From af8c106c0d80add3e6016be54859d5d44d67effd Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Wed, 10 Jul 2024 10:40:46 +0200 Subject: [PATCH 36/68] Add tests for openmetrics counters (#18014) - Confirm that we don't collect metrics that don't end in _total - Confirm that forcing untyped metrics into counters works (see prev point tho) --- .../test_v2/test_transformers/test_counter.py | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/datadog_checks_base/tests/base/checks/openmetrics/test_v2/test_transformers/test_counter.py b/datadog_checks_base/tests/base/checks/openmetrics/test_v2/test_transformers/test_counter.py index a577d178d1885..87f9b26233121 100644 --- a/datadog_checks_base/tests/base/checks/openmetrics/test_v2/test_transformers/test_counter.py +++ b/datadog_checks_base/tests/base/checks/openmetrics/test_v2/test_transformers/test_counter.py @@ -34,6 +34,87 @@ def test_basic(aggregator, dd_run_check, mock_http_response): aggregator.assert_all_metrics_covered() +def test_basic_incorrect_suffix(aggregator, dd_run_check, mock_http_response): + """ + We won't collect counter metrics unless they end in '_total'. + + We commonly see metrics that end in '_count' or ones that have no meaningful suffix at all. + Here we make sure that by default these won't be collected. + """ + + mock_http_response( + """ + # HELP go_memstats_alloc_bytes_count Total number of bytes allocated, even if freed. + # TYPE go_memstats_alloc_bytes_count counter + go_memstats_alloc_bytes_total 9.339544592e+09 + # HELP go_memstats_frees Total number of frees. + # TYPE go_memstats_frees counter + go_memstats_frees_total 1.28219257e+08 + """ + ) + check = get_check({'metrics': ['.+']}) + dd_run_check(check) + + assert not aggregator.metrics('test.go_memstats_alloc_bytes.count') + assert not aggregator.metrics('test.go_memstats_frees.count') + aggregator.assert_all_metrics_covered() + + +def test_untyped_correct_suffix(aggregator, dd_run_check, mock_http_response): + """ + We can force a metric that is 'untyped' in the raw payload to a counter as long as it ends in '_total'. + """ + + mock_http_response( + """ + # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. + # TYPE go_memstats_alloc_bytes_total untyped + go_memstats_alloc_bytes_total 9.339544592e+09 + """ + ) + check = get_check( + {'metrics': [{'go_memstats_alloc_bytes_total': {'name': 'go_memstats_alloc_bytes', 'type': 'counter'}}]} + ) + dd_run_check(check) + + aggregator.assert_metric( + 'test.go_memstats_alloc_bytes.count', 9339544592, metric_type=aggregator.MONOTONIC_COUNT, tags=['endpoint:test'] + ) + aggregator.assert_all_metrics_covered() + + +def test_untyped_incorrect_suffix(aggregator, dd_run_check, mock_http_response): + """ + Forcing an untyped metric as a counter won't work without it ending in '_total'. + """ + + mock_http_response( + """ + # HELP go_memstats_alloc_bytes_count Total number of bytes allocated, even if freed. + # TYPE go_memstats_alloc_bytes_count counter + go_memstats_alloc_bytes_total 9.339544592e+09 + # HELP go_memstats_frees Total number of frees. + # TYPE go_memstats_frees counter + go_memstats_frees_total 1.28219257e+08 + """ + ) + check = get_check( + { + 'metrics': [ + { + 'go_memstats_alloc_bytes': {'name': 'go_memstats_alloc_bytes', 'type': 'counter'}, + 'go_memstats_frees': {'name': 'go_memstats_frees', 'type': 'counter'}, + } + ] + } + ) + dd_run_check(check) + + assert not aggregator.metrics('test.go_memstats_alloc_bytes.count') + assert not aggregator.metrics('test.go_memstats_frees.count') + aggregator.assert_all_metrics_covered() + + def test_tags(aggregator, dd_run_check, mock_http_response): mock_http_response( """ From 50c4f58b3086cbef39432e4b8d57ab8b5da6b933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Van=20Rompay?= <97546950+cedricvanrompay-datadog@users.noreply.github.com> Date: Wed, 10 Jul 2024 11:15:42 +0200 Subject: [PATCH 37/68] Remove SIT as code owners of checks downloader (#17992) * remove SIT as code owners of checks downloader the SIT team is not a core contributor to this software anymore * remove Trishank as code owner See https://github.com/DataDog/integrations-core/pull/17992#issuecomment-2210984237 --- .github/CODEOWNERS | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 893972ca6b62c..dad3a92a02fad 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -305,15 +305,14 @@ datadog_checks_base/datadog_checks/base/checks/windows/ @DataDog/wi /ping_one/assets/logs/ @DataDog/saas-integrations @DataDog/documentation @DataDog/logs-backend # To keep Security up-to-date with changes to the signing tool. -/datadog_checks_dev/datadog_checks/dev/tooling/signing.py @DataDog/software-integrity-and-trust @DataDog/agent-integrations @trishankatdatadog +/datadog_checks_dev/datadog_checks/dev/tooling/signing.py @DataDog/agent-integrations # As well as the secure downloader. -/datadog_checks_downloader/ @DataDog/software-integrity-and-trust @DataDog/agent-integrations @trishankatdatadog -docs/developer/process/integration-release.md @DataDog/software-integrity-and-trust @DataDog/agent-integrations @trishankatdatadog +/datadog_checks_downloader/ @DataDog/agent-integrations +docs/developer/process/integration-release.md @DataDog/agent-integrations # As well as the pipelines. /.github/workflows/ @DataDog/agent-integrations /.github/workflows/build-deps.yml @DataDog/agent-delivery /.gitlab-ci.yml @DataDog/agent-integrations -/.gitlab/software_composition_analysis.yaml @DataDog/software-integrity-and-trust # Dev container /.devcontainer/ @DataDog/agent-integrations @DataDog/container-integrations /.devcontainer/dbm @DataDog/database-monitoring-agent From 0ffd83ac62d01c651542fe5efb5e08aad0ff46b3 Mon Sep 17 00:00:00 2001 From: vivek-datadog <131680079+vivek-datadog@users.noreply.github.com> Date: Wed, 10 Jul 2024 11:44:32 +0200 Subject: [PATCH 38/68] Wrap pytest exit code to 0 when no tests are collected (#18003) * Wrap pytest exit code to 0 when no tests are collected for flaky test suite as well as master * Manage passing additional -m arguments to pytest in e2e test * Pass `all` to pytest for e2e tests. By default e2e tests are checked for None as environment provided in command line args to set it to `all`. With additional args for pytest passed with `-m` flag, ddev cli misinterprets this as an environment name whereas it should be selecting `all` environments --- .github/workflows/test-target.yml | 141 +++++++++++++++++++++++++++-- ddev/src/ddev/cli/test/__init__.py | 28 +++++- 2 files changed, 162 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test-target.yml b/.github/workflows/test-target.yml index 6805d8cddfbec..e7282db8cc3d1 100644 --- a/.github/workflows/test-target.yml +++ b/.github/workflows/test-target.yml @@ -212,23 +212,115 @@ jobs: if: inputs.standard && !inputs.minimum-base-package env: DDEV_TEST_ENABLE_TRACING: "${{ inputs.repo == 'core' && '1' || '0' }}" - run: ddev test --cov --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + run: | + if [ '${{ inputs.pytest-args }}' = '-m flaky' ]; then + set +e # Disable immediate exit + ddev test --cov --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev test --cov --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + fi - name: Run Unit & Integration tests with minimum version of base package if: inputs.standard && inputs.minimum-base-package - run: ddev test --compat --recreate --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + run: | + if [ '${{ inputs.pytest-args }}' = '-m flaky' ]; then + set +e # Disable immediate exit + ddev test --compat --recreate --junit ${{ inputs.target }} -- ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev test --compat --recreate --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- {0}', inputs.pytest-args) || '' }} + fi - name: Run E2E tests with latest base package if: inputs.standard && inputs.repo == 'core' && !inputs.minimum-base-package env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" - run: ddev env test --base --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + run: | + # '-- all' is passed for e2e tests if pytest args are provided + # This is done to avoid ddev from interpreting the arguments as environments + # instead of pytest-args, because by default if no environment is provided + # after -- it will run all environments. So when pytests args are provided + # ddev will interpret '-m' as an environment to run the e2e test on and fails + # This is not required when no pytest args are provided and it will run all environments + # by default + if [ '${{ inputs.pytest-args }}' = '-m flaky' ]; then + set +e # Disable immediate exit + ddev env test --base --new-env --junit ${{ inputs.target }} -- all ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + elif [ '${{ inputs.pytest-args }}' = '-m "not flaky"' ]; then + set +e # Disable immediate exit + ddev env test --base --new-env --junit ${{ inputs.target }} -- all ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev env test --base --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + fi - name: Run E2E tests if: inputs.standard && inputs.repo != 'core' env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" - run: ddev env test --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + run: | + # '-- all' is passed for e2e tests if pytest args are provided + # This is done to avoid ddev from interpreting the arguments as environments + # instead of pytest-args, because by default if no environment is provided + # after -- it will run all environments. So when pytests args are provided + # ddev will interpret '-m' as an environment to run the e2e test on and fails + # This is not required when no pytest args are provided and it will run all environments + # by default + if [ '${{ inputs.pytest-args }}' = '-m flaky' ]; then + set +e # Disable immediate exit + ddev env test --new-env --junit ${{ inputs.target }} -- all ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + elif [ '${{ inputs.pytest-args }}' = '-m "not flaky"' ]; then + set +e # Disable immediate exit + ddev env test --new-env --junit ${{ inputs.target }} -- all ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev env test --new-env --junit ${{ inputs.target }} ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + fi - name: Run benchmarks if: inputs.benchmark @@ -243,7 +335,39 @@ jobs: env: DD_API_KEY: "${{ secrets.DD_API_KEY }}" DDEV_TEST_ENABLE_TRACING: "${{ inputs.repo == 'core' && '1' || '0' }}" - run: ddev env test --base --new-env --junit ${{ inputs.target }}:latest ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + run: | + # '-- all' is passed for e2e tests if pytest args are provided + # This is done to avoid ddev from interpreting the arguments as environments + # instead of pytest-args, because by default if no environment is provided + # after -- it will run all environments. So when pytests args are provided + # ddev will interpret '-m' as an environment to run the e2e test on and fails + # This is not required when no pytest args are provided and it will run all environments + # by default + if [ '${{ inputs.pytest-args }}' = '-m flaky' ]; then + set +e # Disable immediate exit + ddev env test --base --new-env --junit ${{ inputs.target }}:latest -- all ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + elif [ '${{ inputs.pytest-args }}' = '-m "not flaky"' ]; then + set +e # Disable immediate exit + ddev env test --base --new-env --junit ${{ inputs.target }}:latest -- all ${{ inputs.pytest-args }} + exit_code=$? + if [ $exit_code -eq 5 ]; then + # Flaky test count can be zero, this is done to avoid pipeline failure + echo "No tests were collected." + exit 0 + else + exit $exit_code + fi + else + ddev env test --base --new-env --junit ${{ inputs.target }}:latest ${{ inputs.pytest-args != '' && format('-- all {0}', inputs.pytest-args) || '' }} + fi - name: View trace log if: inputs.repo == 'core' && always() @@ -272,7 +396,12 @@ jobs: path: "${{ env.TEST_RESULTS_BASE_DIR }}" - name: Upload coverage data - if: inputs.standard && !github.event.repository.private && always() + if: > + inputs.standard && + !github.event.repository.private && + always() && + inputs.pytest-args != '-m flaky' + # Flaky tests will have low coverage, don't upload it to avoid pipeline failure uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/ddev/src/ddev/cli/test/__init__.py b/ddev/src/ddev/cli/test/__init__.py index eed20cf7a1c04..41e5bc66707b0 100644 --- a/ddev/src/ddev/cli/test/__init__.py +++ b/ddev/src/ddev/cli/test/__init__.py @@ -199,7 +199,33 @@ def test( base_command.append('--memray') if e2e: - base_command.extend(('-m', 'e2e')) + # Convert pytest_args to a list if it's a tuple + pytest_args_list = list(pytest_args) if isinstance(pytest_args, tuple) else pytest_args + + # Initialize a list to hold indices of '-m' options and their values to be removed + indices_to_remove = [] + marker_values = [] + + # Iterate over pytest_args_list to find '-m' or '--markers' options and their values + for i, arg in enumerate(pytest_args_list): + if arg in ('-m', '--markers') and i + 1 < len(pytest_args_list): + indices_to_remove.extend([i, i + 1]) + marker_values.append(pytest_args_list[i + 1]) + + # Reverse sort indices_to_remove to avoid index shifting issues during removal + indices_to_remove.sort(reverse=True) + + # Remove the '-m' options and their values from pytest_args_list + for index in indices_to_remove: + pytest_args_list.pop(index) + + # After removing the '-m' options and their values + # Convert the modified pytest_args_list back to a tuple + pytest_args = tuple(pytest_args_list) + + # Construct the combined marker expression with extracted marker values and 'e2e' + combined_marker = " and ".join(marker_values) + " and e2e" if marker_values else "e2e" + base_command.extend(('-m', combined_marker)) global_env_vars[EndToEndEnvVars.PARENT_PYTHON] = sys.executable app.display_debug(f'Targets: {", ".join(targets)}') From 5d6a13ea38bfcf8237510cb12e4e8a8e516cb2df Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Wed, 10 Jul 2024 13:21:41 +0200 Subject: [PATCH 39/68] Rename classes to avoid pytest warnings (#18015) Pytest tries to treat classes that start with 'Test' as tests. Helper class names shouldn't start with 'Test' to avoid pytest complaining about them. --- .../tests/base/utils/db/test_util.py | 24 +++++++++---------- .../tests/base/utils/test_tracking.py | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/datadog_checks_base/tests/base/utils/db/test_util.py b/datadog_checks_base/tests/base/utils/db/test_util.py index 2c472563bf381..f4ce9a4c0f961 100644 --- a/datadog_checks_base/tests/base/utils/db/test_util.py +++ b/datadog_checks_base/tests/base/utils/db/test_util.py @@ -88,7 +88,7 @@ def test_ratelimiting_ttl_cache(): assert cache.acquire(i), "cache should be empty again so these keys should go in OK" -class TestDBExcepption(BaseException): +class DBExceptionForTests(BaseException): pass @@ -205,15 +205,15 @@ def _mock_obfuscate_sql(query, options=None): assert statement['query'] == expected_query -class TestJob(DBMAsyncJob): +class JobForTesting(DBMAsyncJob): def __init__( self, check, run_sync=False, enabled=True, rate_limit=10, min_collection_interval=15, job_execution_time=0 ): - super(TestJob, self).__init__( + super(JobForTesting, self).__init__( check, run_sync=run_sync, enabled=enabled, - expected_db_exceptions=(TestDBExcepption,), + expected_db_exceptions=(DBExceptionForTests,), min_collection_interval=min_collection_interval, config_host="test-host", dbms="test-dbms", @@ -235,7 +235,7 @@ def run_job(self): def test_dbm_async_job(): check = AgentCheck() - TestJob(check) + JobForTesting(check) @pytest.fixture(autouse=True) @@ -248,7 +248,7 @@ def stop_orphaned_threads(): @pytest.mark.parametrize("enabled", [True, False]) def test_dbm_async_job_enabled(enabled): check = AgentCheck() - job = TestJob(check, enabled=enabled) + job = JobForTesting(check, enabled=enabled) job.run_job_loop([]) if enabled: assert job._job_loop_future is not None @@ -259,7 +259,7 @@ def test_dbm_async_job_enabled(enabled): def test_dbm_async_job_cancel(aggregator): - job = TestJob(AgentCheck()) + job = JobForTesting(AgentCheck()) tags = ["hello:there"] job.run_job_loop(tags) job.cancel() @@ -273,7 +273,7 @@ def test_dbm_async_job_cancel(aggregator): def test_dbm_async_job_run_sync(aggregator): - job = TestJob(AgentCheck(), run_sync=True) + job = JobForTesting(AgentCheck(), run_sync=True) job.run_job_loop([]) assert job._job_loop_future is None aggregator.assert_metric("dbm.async_job_test.run_job") @@ -281,7 +281,7 @@ def test_dbm_async_job_run_sync(aggregator): def test_dbm_sync_job_rate_limit(aggregator): rate_limit = 1 - job = TestJob(AgentCheck(), run_sync=True, rate_limit=rate_limit) + job = JobForTesting(AgentCheck(), run_sync=True, rate_limit=rate_limit) for _ in range(0, 2): # 2 runs out of 3 should be skipped job.run_job_loop([]) @@ -294,7 +294,7 @@ def test_dbm_sync_job_rate_limit(aggregator): def test_dbm_sync_long_job_rate_limit(aggregator): collection_interval = 0.5 rate_limit = 1 / collection_interval - job = TestJob(AgentCheck(), run_sync=True, rate_limit=rate_limit, job_execution_time=2 * collection_interval) + job = JobForTesting(AgentCheck(), run_sync=True, rate_limit=rate_limit, job_execution_time=2 * collection_interval) job.run_job_loop([]) # despite jobs being executed one after another rate limiter shouldn't block execution # as jobs are slower than the collection interval @@ -308,7 +308,7 @@ def test_dbm_async_job_rate_limit(aggregator): limit_time = 1.0 sleep_time = 0.9 # just below what the rate limit should hit to buffer before cancelling the loop - job = TestJob(AgentCheck(), rate_limit=rate_limit) + job = JobForTesting(AgentCheck(), rate_limit=rate_limit) job.run_job_loop([]) time.sleep(sleep_time) @@ -320,7 +320,7 @@ def test_dbm_async_job_rate_limit(aggregator): def test_dbm_async_job_inactive_stop(aggregator): - job = TestJob(AgentCheck(), rate_limit=10, min_collection_interval=1) + job = JobForTesting(AgentCheck(), rate_limit=10, min_collection_interval=1) job.run_job_loop([]) job._job_loop_future.result() aggregator.assert_metric("dd.test-dbms.async_job.inactive_stop", tags=['job:test-job']) diff --git a/datadog_checks_base/tests/base/utils/test_tracking.py b/datadog_checks_base/tests/base/utils/test_tracking.py index f29bd18855734..16122941c9ad8 100644 --- a/datadog_checks_base/tests/base/utils/test_tracking.py +++ b/datadog_checks_base/tests/base/utils/test_tracking.py @@ -31,7 +31,7 @@ class MyException(Exception): pass -class TestJob: +class Job: def __init__(self, check): self.check = check @@ -72,7 +72,7 @@ def test_tracked_exception(self): def test_tracked_method(aggregator, debug_stats_kwargs, disable_tracking): os.environ['DD_DISABLE_TRACKED_METHOD'] = str(disable_tracking).lower() check = HelloCheck(debug_stats_kwargs) if debug_stats_kwargs else AgentCheck(name="hello") - job = TestJob(check) + job = Job(check) result = job.run_job() assert result == EXPECTED_RESULT From b915f56ddbdaa378bbd56babada3b1ee61da6f86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?zoe=C2=A0=E2=9C=A8?= <9274242+zoedt@users.noreply.github.com> Date: Wed, 10 Jul 2024 08:00:34 -0400 Subject: [PATCH 40/68] [NDM] Add NDM metadata support for Cisco ACI (#17735) * Add support for sending device metadata * Add unit test for device metadata, update fixture * Add license header, changelogs * Lint * First pass at submitting interface metadata, cleanup for test fixtures * Fix for py2.7 support * Try to fix imports * Deal with pydantic stuff py2.7 * Allow namespace for Cisco ACI devices, static var for vendor * Update device metadata to use the correct fieldname, add pydantic model for EvP intake * Sync the conf.yaml example * Add device type and integration to device metadata, fix ID field name * Update interface statuses * Deal with device status (use fabricSt) * Update get_eth_list to get operStatus, update all tests and fixtures * Amend docs for namespace * Batch events sent to EvP * Add interface status metric * Only add to list for >py3.0 * Update default value for vendor, yield for batch events, use device type other * Add source field to device metadata tags * Add enums for interface status * Use correct track type for NDM metadata * Amend device id tag, collect timestamp ms -> s * Add interface integration field * More generic method to send EvP event * Add docstring for the EvP method * Update interface tagging, remove system_ip tag * Fix linting for submit event platform event * Use interface ID tags --- cisco_aci/assets/configuration/spec.yaml | 7 + cisco_aci/changelog.d/17735.added | 1 + .../datadog_checks/cisco_aci/__init__.py | 2 +- cisco_aci/datadog_checks/cisco_aci/api.py | 4 +- cisco_aci/datadog_checks/cisco_aci/cisco.py | 17 +- .../cisco_aci/config_models/defaults.py | 4 + .../cisco_aci/config_models/instance.py | 1 + .../cisco_aci/data/conf.yaml.example | 6 + cisco_aci/datadog_checks/cisco_aci/fabric.py | 111 +- cisco_aci/datadog_checks/cisco_aci/models.py | 160 + cisco_aci/hatch.toml | 5 + cisco_aci/tests/common.py | 16 +- .../2569ee885cad13ed336e5b4c8bd6dab4.txt | 3865 ++++++ .../2e82232a722241e59f27ac3742934e7e.txt | 209 +- .../62cb899b6e7f6b81035914cfac47b915.txt | 11161 ++++++++++++++++ .../77987eb09f39a2abbc59e55aaa9d40ab.txt | 3865 ++++++ .../79af98fe9c1069b329af3b4828712ddd.txt | 1 - .../7b06db4060591652e39b305410a03a2a.txt | 1 - .../9d167692ace22bc1013437072c55a641.txt | 5881 ++++++++ .../dace1ecad6f3d9a50eb8d4a15631ba88.txt | 1 - .../ded65ac48170a7a3d8914950607e4e18.txt | 1 - cisco_aci/tests/fixtures/metadata.py | 2730 ++++ cisco_aci/tests/test_fabric.py | 68 +- datadog_checks_base/changelog.d/17735.added | 1 + .../datadog_checks/base/checks/base.py | 15 + 25 files changed, 28097 insertions(+), 36 deletions(-) create mode 100644 cisco_aci/changelog.d/17735.added create mode 100644 cisco_aci/datadog_checks/cisco_aci/models.py create mode 100644 cisco_aci/tests/fixtures/fabric/2569ee885cad13ed336e5b4c8bd6dab4.txt create mode 100644 cisco_aci/tests/fixtures/fabric/62cb899b6e7f6b81035914cfac47b915.txt create mode 100644 cisco_aci/tests/fixtures/fabric/77987eb09f39a2abbc59e55aaa9d40ab.txt delete mode 100644 cisco_aci/tests/fixtures/fabric/79af98fe9c1069b329af3b4828712ddd.txt delete mode 100644 cisco_aci/tests/fixtures/fabric/7b06db4060591652e39b305410a03a2a.txt create mode 100644 cisco_aci/tests/fixtures/fabric/9d167692ace22bc1013437072c55a641.txt delete mode 100644 cisco_aci/tests/fixtures/fabric/dace1ecad6f3d9a50eb8d4a15631ba88.txt delete mode 100644 cisco_aci/tests/fixtures/fabric/ded65ac48170a7a3d8914950607e4e18.txt create mode 100644 cisco_aci/tests/fixtures/metadata.py create mode 100644 datadog_checks_base/changelog.d/17735.added diff --git a/cisco_aci/assets/configuration/spec.yaml b/cisco_aci/assets/configuration/spec.yaml index 12a3de50997f7..f92df444aee16 100644 --- a/cisco_aci/assets/configuration/spec.yaml +++ b/cisco_aci/assets/configuration/spec.yaml @@ -92,6 +92,13 @@ files: value: type: boolean example: False + - name: namespace + description: | + Namespace for differentiating between devices that share the same IP. + If not specified, the namespace will be 'default'. + value: + type: string + example: default - template: instances/http overrides: username.display_priority: 9 diff --git a/cisco_aci/changelog.d/17735.added b/cisco_aci/changelog.d/17735.added new file mode 100644 index 0000000000000..52f7db64dbecb --- /dev/null +++ b/cisco_aci/changelog.d/17735.added @@ -0,0 +1 @@ +[NDM] Add NDM metadata support for Cisco ACI diff --git a/cisco_aci/datadog_checks/cisco_aci/__init__.py b/cisco_aci/datadog_checks/cisco_aci/__init__.py index a0cd004af5d12..b4557b495b2a1 100644 --- a/cisco_aci/datadog_checks/cisco_aci/__init__.py +++ b/cisco_aci/datadog_checks/cisco_aci/__init__.py @@ -3,6 +3,6 @@ # Licensed under a 3-clause BSD style license (see LICENSE) from .__about__ import __version__ -from .cisco import CiscoACICheck +from datadog_checks.cisco_aci.cisco import CiscoACICheck __all__ = ['__version__', 'CiscoACICheck'] diff --git a/cisco_aci/datadog_checks/cisco_aci/api.py b/cisco_aci/datadog_checks/cisco_aci/api.py index 3051e9f4582a7..d84ddca48f210 100644 --- a/cisco_aci/datadog_checks/cisco_aci/api.py +++ b/cisco_aci/datadog_checks/cisco_aci/api.py @@ -286,8 +286,8 @@ def get_spine_proc_metrics(self, pod, node): return self._parse_response(response) def get_eth_list(self, pod, node): - query = 'query-target=subtree&target-subtree-class=l1PhysIf' - path = '/api/mo/topology/pod-{}/node-{}/sys.json?{}'.format(pod, node, query) + query = 'rsp-subtree=children&rsp-subtree-class=ethpmPhysIf' + path = '/api/node/class/topology/pod-{}/node-{}/l1PhysIf.json?{}'.format(pod, node, query) response = self.make_request(path) return self._parse_response(response) diff --git a/cisco_aci/datadog_checks/cisco_aci/cisco.py b/cisco_aci/datadog_checks/cisco_aci/cisco.py index 1468dbdca818b..4cfee34753db7 100644 --- a/cisco_aci/datadog_checks/cisco_aci/cisco.py +++ b/cisco_aci/datadog_checks/cisco_aci/cisco.py @@ -6,13 +6,12 @@ from datadog_checks.base import AgentCheck, ConfigurationError from datadog_checks.base.config import _is_affirmative from datadog_checks.base.utils.containers import hash_mutable - -from . import aci_metrics -from .api import Api -from .capacity import Capacity -from .fabric import Fabric -from .tags import CiscoTags -from .tenant import Tenant +from datadog_checks.cisco_aci.aci_metrics import make_tenant_metrics +from datadog_checks.cisco_aci.api import Api +from datadog_checks.cisco_aci.capacity import Capacity +from datadog_checks.cisco_aci.fabric import Fabric +from datadog_checks.cisco_aci.tags import CiscoTags +from datadog_checks.cisco_aci.tenant import Tenant SOURCE_TYPE = 'cisco_aci' @@ -25,7 +24,7 @@ class CiscoACICheck(AgentCheck): def __init__(self, name, init_config, instances): super(CiscoACICheck, self).__init__(name, init_config, instances) - self.tenant_metrics = aci_metrics.make_tenant_metrics() + self.tenant_metrics = make_tenant_metrics() self.last_events_ts = {} self.external_host_tags = {} self._api_cache = {} @@ -109,7 +108,7 @@ def check(self, _): raise try: - fabric = Fabric(self, api, self.instance) + fabric = Fabric(self, api, self.instance, self.instance.get('namespace', 'default')) fabric.collect() except Exception as e: self.log.error('fabric collection failed: %s', e) diff --git a/cisco_aci/datadog_checks/cisco_aci/config_models/defaults.py b/cisco_aci/datadog_checks/cisco_aci/config_models/defaults.py index e60aec5388c04..2751bd8d08d25 100644 --- a/cisco_aci/datadog_checks/cisco_aci/config_models/defaults.py +++ b/cisco_aci/datadog_checks/cisco_aci/config_models/defaults.py @@ -60,6 +60,10 @@ def instance_min_collection_interval(): return 15 +def instance_namespace(): + return 'default' + + def instance_persist_connections(): return False diff --git a/cisco_aci/datadog_checks/cisco_aci/config_models/instance.py b/cisco_aci/datadog_checks/cisco_aci/config_models/instance.py index 59e03b26be434..09d3e8fd15135 100644 --- a/cisco_aci/datadog_checks/cisco_aci/config_models/instance.py +++ b/cisco_aci/datadog_checks/cisco_aci/config_models/instance.py @@ -82,6 +82,7 @@ class InstanceConfig(BaseModel): log_requests: Optional[bool] = None metric_patterns: Optional[MetricPatterns] = None min_collection_interval: Optional[float] = None + namespace: Optional[str] = None ntlm_domain: Optional[str] = None password: Optional[str] = None persist_connections: Optional[bool] = None diff --git a/cisco_aci/datadog_checks/cisco_aci/data/conf.yaml.example b/cisco_aci/datadog_checks/cisco_aci/data/conf.yaml.example index 9f6a6e5663817..5174e02dd19d5 100644 --- a/cisco_aci/datadog_checks/cisco_aci/data/conf.yaml.example +++ b/cisco_aci/datadog_checks/cisco_aci/data/conf.yaml.example @@ -124,6 +124,12 @@ instances: # # appcenter: false + ## @param namespace - string - optional - default: default + ## Namespace for differentiating between devices that share the same IP. + ## If not specified, the namespace will be 'default'. + # + # namespace: default + ## @param proxy - mapping - optional ## This overrides the `proxy` setting in `init_config`. ## diff --git a/cisco_aci/datadog_checks/cisco_aci/fabric.py b/cisco_aci/datadog_checks/cisco_aci/fabric.py index 519b64b174d32..e8b88a0f6a7ab 100644 --- a/cisco_aci/datadog_checks/cisco_aci/fabric.py +++ b/cisco_aci/datadog_checks/cisco_aci/fabric.py @@ -2,21 +2,38 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -from six import iteritems +from six import PY3, iteritems + +from datadog_checks.base.utils.serialization import json + +if PY3: + import time + + from datadog_checks.cisco_aci.models import DeviceMetadata, InterfaceMetadata, NetworkDevicesMetadata, Node, PhysIf + +else: + DeviceMetadata = None + Eth = None + InterfaceMetadata = None + Node = None from . import aci_metrics, exceptions, helpers +VENDOR_CISCO = 'cisco' +PAYLOAD_METADATA_BATCH_SIZE = 100 + class Fabric: """ Collect fabric metrics from the APIC """ - def __init__(self, check, api, instance): + def __init__(self, check, api, instance, namespace): self.check = check self.api = api self.instance = instance self.check_tags = check.check_tags + self.namespace = namespace # grab some functions from the check self.gauge = check.gauge @@ -25,13 +42,19 @@ def __init__(self, check, api, instance): self.submit_metrics = check.submit_metrics self.tagger = self.check.tagger self.external_host_tags = self.check.external_host_tags + self.event_platform_event = check.event_platform_event def collect(self): fabric_pods = self.api.get_fabric_pods() fabric_nodes = self.api.get_fabric_nodes() self.log.info("%s pods and %s nodes computed", len(fabric_nodes), len(fabric_pods)) pods = self.submit_pod_health(fabric_pods) - self.submit_nodes_health(fabric_nodes, pods) + devices, interfaces = self.submit_nodes_health_and_metadata(fabric_nodes, pods) + if PY3: + collect_timestamp = int(time.time()) + batches = self.batch_payloads(devices, interfaces, collect_timestamp) + for batch in batches: + self.event_platform_event(json.dumps(batch.model_dump(exclude_none=True)), "network-devices-metadata") def submit_pod_health(self, pods): pods_dict = {} @@ -53,7 +76,9 @@ def submit_pod_health(self, pods): return pods_dict - def submit_nodes_health(self, nodes, pods): + def submit_nodes_health_and_metadata(self, nodes, pods): + device_metadata = [] + interface_metadata = [] for n in nodes: hostname = helpers.get_fabric_hostname(n) @@ -70,6 +95,8 @@ def submit_nodes_health(self, nodes, pods): continue self.log.info("processing node %s on pod %s", node_id, pod_id) try: + if PY3: + device_metadata.append(self.submit_node_metadata(node_attrs, tags)) self.submit_process_metric(n, tags + self.check_tags + user_tags, hostname=hostname) except (exceptions.APIConnectionException, exceptions.APIParsingException): pass @@ -77,10 +104,13 @@ def submit_nodes_health(self, nodes, pods): try: stats = self.api.get_node_stats(pod_id, node_id) self.submit_fabric_metric(stats, tags, 'fabricNode', hostname=hostname) - self.process_eth(node_attrs) + eth_metadata = self.process_eth(node_attrs) + if PY3: + interface_metadata.extend(eth_metadata) except (exceptions.APIConnectionException, exceptions.APIParsingException): pass self.log.info("finished processing node %s", node_id) + return device_metadata, interface_metadata def process_eth(self, node): self.log.info("processing ethernet ports for %s", node.get('id')) @@ -90,16 +120,20 @@ def process_eth(self, node): eth_list = self.api.get_eth_list(pod_id, node['id']) except (exceptions.APIConnectionException, exceptions.APIParsingException): pass + interfaces = [] for e in eth_list: eth_attrs = helpers.get_attributes(e) eth_id = eth_attrs['id'] tags = self.tagger.get_fabric_tags(e, 'l1PhysIf') + if PY3: + interfaces.append(self.create_interface_metadata(e, node['address'], tags, hostname)) try: stats = self.api.get_eth_stats(pod_id, node['id'], eth_id) self.submit_fabric_metric(stats, tags, 'l1PhysIf', hostname=hostname) except (exceptions.APIConnectionException, exceptions.APIParsingException): pass self.log.info("finished processing ethernet ports for %s", node['id']) + return interfaces def submit_fabric_metric(self, stats, tags, obj_type, hostname=None): for s in stats: @@ -209,3 +243,70 @@ def get_fabric_type(self, obj_type): return 'pod' if obj_type == 'l1PhysIf': return 'port' + + def batch_payloads(self, devices, interfaces, collect_ts): + for device in devices: + yield NetworkDevicesMetadata(namespace=self.namespace, devices=[device], collect_timestamp=collect_ts) + + payloads = [] + for interface in interfaces: + if len(payloads) == PAYLOAD_METADATA_BATCH_SIZE: + yield NetworkDevicesMetadata( + namespace=self.namespace, interfaces=payloads, collect_timestamp=collect_ts + ) + payloads = [] + payloads.append(interface) + if payloads: + yield NetworkDevicesMetadata(namespace=self.namespace, interfaces=payloads, collect_timestamp=collect_ts) + + def submit_node_metadata(self, node_attrs, tags): + node = Node(attributes=node_attrs) + id_tags = ['namespace:{}'.format(self.namespace)] + device_tags = [ + 'device_vendor:{}'.format(VENDOR_CISCO), + 'device_namespace:{}'.format(self.namespace), + 'device_hostname:{}'.format(node.attributes.dn), + 'hostname:{}'.format(node.attributes.dn), + 'device_ip:{}'.format(node.attributes.address), + 'device_id:{}:{}'.format(self.namespace, node.attributes.address), + "source:cisco-aci", + ] + device = DeviceMetadata( + id='{}:{}'.format(self.namespace, node.attributes.address), + id_tags=id_tags, + tags=device_tags + tags, + name=node.attributes.dn, + ip_address=node.attributes.address, + model=node.attributes.model, + fabric_st=node.attributes.fabric_st, + vendor=VENDOR_CISCO, + version=node.attributes.version, + serial_number=node.attributes.serial, + device_type=node.attributes.device_type, + ) + return device.model_dump(exclude_none=True) + + def create_interface_metadata(self, phys_if, address, tags, hostname): + eth = PhysIf(**phys_if.get('l1PhysIf', {})) + interface = InterfaceMetadata( + device_id='{}:{}'.format(self.namespace, address), + id_tags=['interface:{}'.format(eth.attributes.name)], + index=eth.attributes.id, + name=eth.attributes.name, + description=eth.attributes.desc, + mac_address=eth.attributes.router_mac, + admin_status=eth.attributes.admin_st, + ) + if eth.ethpm_phys_if: + interface.oper_status = eth.ethpm_phys_if.attributes.oper_st + if interface.status: + new_tags = tags.copy() + new_tags.extend( + [ + "device_ip:{}".format(address), + "device_namespace:{}".format(self.namespace), + "interface.status:{}".format(interface.status), + ] + ) + self.gauge('cisco_aci.fabric.node.interface.status', 1, tags=new_tags, hostname=hostname) + return interface.model_dump(exclude_none=True) diff --git a/cisco_aci/datadog_checks/cisco_aci/models.py b/cisco_aci/datadog_checks/cisco_aci/models.py new file mode 100644 index 0000000000000..d69468c480025 --- /dev/null +++ b/cisco_aci/datadog_checks/cisco_aci/models.py @@ -0,0 +1,160 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +import six + +if six.PY3: + from enum import IntEnum, StrEnum + from typing import Optional + + from pydantic import BaseModel, ConfigDict, Field, computed_field, field_validator + + class NodeAttributes(BaseModel): + address: Optional[str] = None + fabric_st: Optional[str] = Field(default=None, alias="fabricSt") + role: Optional[str] = None + dn: Optional[str] = None + model: Optional[str] = None + version: Optional[str] = None + serial: Optional[str] = None + vendor: Optional[str] = Field(default='cisco') + namespace: Optional[str] = Field(default='default') + + @computed_field + @property + def device_type(self) -> str: + if self.role in ['leaf', 'spine']: + return 'switch' + return 'other' + + class Node(BaseModel): + attributes: NodeAttributes + + class EthpmPhysIfAttributes(BaseModel): + oper_st: Optional[str] = Field(default=None, alias="operSt") + oper_router_mac: Optional[str] = Field(default=None, alias="operRouterMac") + + class EthpmPhysIf(BaseModel): + attributes: EthpmPhysIfAttributes + + class L1PhysIfAttributes(BaseModel): + admin_st: Optional[str] = Field(default=None, alias="adminSt") + id: Optional[str] = None + name: Optional[str] = None + desc: Optional[str] = None + router_mac: Optional[str] = Field(default=None, alias="routerMac") + + class PhysIf(BaseModel): + attributes: L1PhysIfAttributes + children: Optional[list] = Field(default_factory=list) + + @computed_field + @property + def ethpm_phys_if(self) -> Optional[EthpmPhysIf]: + for child in self.children: + if 'ethpmPhysIf' in child: + return EthpmPhysIf(**child['ethpmPhysIf']) + return None + + class DeviceMetadata(BaseModel): + id: Optional[str] = Field(default=None) + id_tags: list = Field(default_factory=list) + tags: list = Field(default_factory=list) + name: Optional[str] = Field(default=None) + ip_address: Optional[str] = Field(default=None) + model: Optional[str] = Field(default=None) + fabric_st: Optional[str] = Field(default=None, exclude=True) + vendor: Optional[str] = Field(default=None) + version: Optional[str] = Field(default=None) + serial_number: Optional[str] = Field(default=None) + device_type: Optional[str] = Field(default=None) + integration: Optional[str] = Field(default='cisco-aci') + + @computed_field + @property + def status(self) -> int: + mapping = { + 'active': 1, + 'inactive': 2, + 'disabled': 2, + 'discovering': 2, + 'undiscovered': 2, + 'unsupported': 2, + 'unknown': 2, + } + return mapping.get(self.fabric_st, 2) + + class DeviceMetadataList(BaseModel): + device_metadata: list = Field(default_factory=list) + + class AdminStatus(IntEnum): + UP = 1 + DOWN = 2 + + class OperStatus(IntEnum): + UP = 1 + DOWN = 2 + + class Status(StrEnum): + UP = "up" + DOWN = "down" + WARNING = "warning" + OFF = "off" + + class InterfaceMetadata(BaseModel): + device_id: Optional[str] = Field(default=None) + id_tags: list = Field(default_factory=list) + index: Optional[str] = Field(default=None) + name: Optional[str] = Field(default=None) + description: Optional[str] = Field(default=None) + mac_address: Optional[str] = Field(default=None) + admin_status: Optional[AdminStatus] = Field(default=None) + oper_status: Optional[OperStatus] = Field(default=None) + integration: Optional[str] = Field(default='cisco-aci') + + model_config = ConfigDict(validate_assignment=True, use_enum_values=True) + + @field_validator("admin_status", mode="before") + @classmethod + def parse_admin_status(cls, admin_status: AdminStatus | None) -> AdminStatus | None: + if not admin_status: + return None + if admin_status == "up" or admin_status == 1: + return AdminStatus.UP + return AdminStatus.DOWN + + @field_validator("oper_status", mode="before") + @classmethod + def parse_oper_status(cls, oper_status: OperStatus | None) -> OperStatus | None: + if not oper_status: + return None + if oper_status == "up" or oper_status == 1: + return OperStatus.UP + return OperStatus.DOWN + + @computed_field + @property + def status(self) -> Status: + if self.admin_status == AdminStatus.UP: + if self.oper_status == OperStatus.UP: + return Status.UP + if self.oper_status == OperStatus.DOWN: + return Status.DOWN + return Status.WARNING + if self.admin_status == AdminStatus.DOWN: + if self.oper_status == OperStatus.UP: + return Status.DOWN + if self.oper_status == OperStatus.DOWN: + return Status.OFF + return Status.WARNING + return Status.DOWN + + class InterfaceMetadataList(BaseModel): + interface_metadata: list = Field(default_factory=list) + + class NetworkDevicesMetadata(BaseModel): + namespace: str = None + devices: Optional[list[DeviceMetadata]] = Field(default_factory=list) + interfaces: Optional[list[InterfaceMetadata]] = Field(default_factory=list) + collect_timestamp: Optional[int] = None diff --git a/cisco_aci/hatch.toml b/cisco_aci/hatch.toml index e4697f09874ad..a82e6417601ca 100644 --- a/cisco_aci/hatch.toml +++ b/cisco_aci/hatch.toml @@ -2,3 +2,8 @@ [[envs.default.matrix]] python = ["2.7", "3.11"] + +[envs.default] +dependencies = [ + "freezegun==0.3.15", +] \ No newline at end of file diff --git a/cisco_aci/tests/common.py b/cisco_aci/tests/common.py index 384c6ff1364a8..b724e95312799 100644 --- a/cisco_aci/tests/common.py +++ b/cisco_aci/tests/common.py @@ -568,14 +568,14 @@ # 603cc1278c410b07905c2c35b49afbe6 - Api.get_epg_meta '_api_mo_uni_tn_DataDog_ap_DtDg_AP1_EcommerceApp_epg_DtDg_Ord_json_query_target_subtree_target_subtree_class_fvCEp', # b9ec4494d631d05122fd7fb4baf0877d - Api.get_epg_meta - '_api_mo_topology_pod_1_node_102_sys_json_query_target_subtree_target_subtree_class_l1PhysIf', - # 79af98fe9c1069b329af3b4828712ddd - Api.get_eth_list - '_api_mo_topology_pod_1_node_202_sys_json_query_target_subtree_target_subtree_class_l1PhysIf', - # 7b06db4060591652e39b305410a03a2a - Api.get_eth_list - '_api_mo_topology_pod_1_node_201_sys_json_query_target_subtree_target_subtree_class_l1PhysIf', - # ded65ac48170a7a3d8914950607e4e18 - Api.get_eth_list - '_api_mo_topology_pod_1_node_101_sys_json_query_target_subtree_target_subtree_class_l1PhysIf', - # dace1ecad6f3d9a50eb8d4a15631ba88 - Api.get_eth_list + '_api_node_class_topology_pod_1_node_102_l1PhysIf_json_rsp_subtree_children_rsp_subtree_class_ethpmPhysIf', + # 79af98fe9c1069b329af3b4828712ddd - Api.get_eth_list -> 9d167692ace22bc1013437072c55a641 + '_api_node_class_topology_pod_1_node_202_l1PhysIf_json_rsp_subtree_children_rsp_subtree_class_ethpmPhysIf', + # 7b06db4060591652e39b305410a03a2a - Api.get_eth_list -> 77987eb09f39a2abbc59e55aaa9d40ab + '_api_node_class_topology_pod_1_node_201_l1PhysIf_json_rsp_subtree_children_rsp_subtree_class_ethpmPhysIf', + # ded65ac48170a7a3d8914950607e4e18 - Api.get_eth_list -> 2569ee885cad13ed336e5b4c8bd6dab4 + '_api_node_class_topology_pod_1_node_101_l1PhysIf_json_rsp_subtree_children_rsp_subtree_class_ethpmPhysIf', + # dace1ecad6f3d9a50eb8d4a15631ba88 - Api.get_eth_list -> 62cb899b6e7f6b81035914cfac47b915 '_api_mo_uni_tn_DataDog_ap_DtDg_AP2_Jeti_epg_DtDg_Jeti1_json_query_target_subtree_target_subtree_class_fvRsCEpToPathEp', # noqa: E501 # e2b226f554c9f77aafd9b66b4cf59383 - Api.get_eth_list_for_epg '_api_mo_uni_tn_DataDog_ap_DtDg_AP1_EcommerceApp_epg_DtDg_Ecomm_json_query_target_subtree_target_subtree_class_fvRsCEpToPathEp', # noqa: E501 diff --git a/cisco_aci/tests/fixtures/fabric/2569ee885cad13ed336e5b4c8bd6dab4.txt b/cisco_aci/tests/fixtures/fabric/2569ee885cad13ed336e5b4c8bd6dab4.txt new file mode 100644 index 0000000000000..0eea71cef9216 --- /dev/null +++ b/cisco_aci/tests/fixtures/fabric/2569ee885cad13ed336e5b4c8bd6dab4.txt @@ -0,0 +1,3865 @@ +{ + "totalCount": "36", + "imdata": [ + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/33]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/33", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/34]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/34", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/35]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/35", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/36]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/36", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/1]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/1", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:18.095-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "fabric" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/2]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/2", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.212-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "fabric" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/3]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/3", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/4]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/4", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/5]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/5", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/6]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/6", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/7]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/7", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/8]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/8", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/9]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/9", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/10]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/10", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/11]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/11", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/12]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/12", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/13]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/13", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/14]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/14", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/15]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/15", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/16]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/16", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/17]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/17", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/18]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/18", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/19]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/19", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/20]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/20", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/21]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/21", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/22]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/22", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/23]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/23", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/24]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/24", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/25]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/25", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/26]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/26", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/27]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/27", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/28]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/28", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/29]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/29", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/30]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/30", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/31]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/31", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-201/sys/phys-[eth1/32]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/32", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:04:02.984-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + } + } + } + ] +} \ No newline at end of file diff --git a/cisco_aci/tests/fixtures/fabric/2e82232a722241e59f27ac3742934e7e.txt b/cisco_aci/tests/fixtures/fabric/2e82232a722241e59f27ac3742934e7e.txt index c10296b81468e..a0d365787550d 100644 --- a/cisco_aci/tests/fixtures/fabric/2e82232a722241e59f27ac3742934e7e.txt +++ b/cisco_aci/tests/fixtures/fabric/2e82232a722241e59f27ac3742934e7e.txt @@ -1 +1,208 @@ -{"totalCount":"7","imdata":[{"fabricNode":{"attributes":{"adSt":"on","annotation":"","childAction":"","delayedHeartbeat":"no","dn":"topology/pod-1/node-101","extMngdBy":"","fabricSt":"active","id":"101","lastStateModTs":"2018-05-29T16:53:17.789-07:00","lcOwn":"local","modTs":"2018-05-29T16:53:58.209-07:00","model":"N9K-C93180YC-FX","monPolDn":"uni/fabric/monfab-default","name":"leaf101","nameAlias":"","nodeType":"unspecified","role":"leaf","serial":"FDO20440TS1","status":"","uid":"0","vendor":"Cisco Systems, Inc","version":""}}},{"fabricNode":{"attributes":{"adSt":"on","annotation":"","childAction":"","delayedHeartbeat":"no","dn":"topology/pod-1/node-102","extMngdBy":"","fabricSt":"active","id":"102","lastStateModTs":"2018-05-29T16:53:17.790-07:00","lcOwn":"local","modTs":"2018-05-29T16:53:58.207-07:00","model":"N9K-C93180YC-FX","monPolDn":"uni/fabric/monfab-default","name":"leaf102","nameAlias":"","nodeType":"unspecified","role":"leaf","serial":"FDO20510HCA","status":"","uid":"0","vendor":"Cisco Systems, Inc","version":""}}},{"fabricNode":{"attributes":{"adSt":"on","annotation":"","childAction":"","delayedHeartbeat":"no","dn":"topology/pod-1/node-202","extMngdBy":"","fabricSt":"active","id":"202","lastStateModTs":"2018-05-29T16:53:17.892-07:00","lcOwn":"local","modTs":"2018-05-29T16:53:58.202-07:00","model":"N9K-C9336PQ","monPolDn":"uni/fabric/monfab-default","name":"spine202","nameAlias":"","nodeType":"unspecified","role":"spine","serial":"SAL2014N5T7","status":"","uid":"0","vendor":"Cisco Systems, Inc","version":""}}},{"fabricNode":{"attributes":{"adSt":"on","annotation":"","childAction":"","delayedHeartbeat":"no","dn":"topology/pod-1/node-3","extMngdBy":"","fabricSt":"unknown","id":"3","lastStateModTs":"1969-12-31T17:00:00.000-07:00","lcOwn":"local","modTs":"2018-05-10T19:01:36.971-07:00","model":"APIC-SERVER-M1","monPolDn":"uni/fabric/monfab-default","name":"apic3","nameAlias":"","nodeType":"unspecified","role":"controller","serial":"FCH1927V11T","status":"","uid":"0","vendor":"Cisco Systems, Inc","version":"A"}}},{"fabricNode":{"attributes":{"adSt":"on","annotation":"","childAction":"","delayedHeartbeat":"no","dn":"topology/pod-1/node-1","extMngdBy":"","fabricSt":"unknown","id":"1","lastStateModTs":"1969-12-31T17:00:00.000-07:00","lcOwn":"local","modTs":"2016-07-20T11:29:10.877-07:00","model":"APIC-SERVER-M1","monPolDn":"uni/fabric/monfab-default","name":"apic1","nameAlias":"","nodeType":"unspecified","role":"controller","serial":"FCH1928V0SL","status":"","uid":"0","vendor":"Cisco Systems, Inc","version":"A"}}},{"fabricNode":{"attributes":{"adSt":"on","annotation":"","childAction":"","delayedHeartbeat":"no","dn":"topology/pod-1/node-201","extMngdBy":"","fabricSt":"active","id":"201","lastStateModTs":"2018-05-29T16:53:17.887-07:00","lcOwn":"local","modTs":"2018-05-29T16:54:03.494-07:00","model":"N9K-C9336PQ","monPolDn":"uni/fabric/monfab-default","name":"spine201","nameAlias":"","nodeType":"unspecified","role":"spine","serial":"SAL2014N5U4","status":"","uid":"0","vendor":"Cisco Systems, Inc","version":""}}},{"fabricNode":{"attributes":{"adSt":"on","annotation":"","childAction":"","delayedHeartbeat":"no","dn":"topology/pod-1/node-2","extMngdBy":"","fabricSt":"unknown","id":"2","lastStateModTs":"1969-12-31T17:00:00.000-07:00","lcOwn":"local","modTs":"2016-07-20T12:19:20.101-07:00","model":"APIC-SERVER-M1","monPolDn":"uni/fabric/monfab-default","name":"apic2","nameAlias":"","nodeType":"unspecified","role":"controller","serial":"FCH1928V06Q","status":"","uid":"0","vendor":"Cisco Systems, Inc","version":"A"}}}]} \ No newline at end of file +{ + "totalCount": "7", + "imdata": [ + { + "fabricNode": { + "attributes": { + "adSt": "on", + "address": "10.0.200.0", + "annotation": "", + "childAction": "", + "delayedHeartbeat": "no", + "dn": "topology/pod-1/node-101", + "extMngdBy": "", + "fabricSt": "active", + "id": "101", + "lastStateModTs": "2018-05-29T16:53:17.789-07:00", + "lcOwn": "local", + "modTs": "2018-05-29T16:53:58.209-07:00", + "model": "N9K-C93180YC-FX", + "monPolDn": "uni/fabric/monfab-default", + "name": "leaf101", + "nameAlias": "", + "nodeType": "unspecified", + "role": "leaf", + "serial": "FDO20440TS1", + "status": "", + "uid": "0", + "vendor": "Cisco Systems, Inc", + "version": "" + } + } + }, + { + "fabricNode": { + "attributes": { + "adSt": "on", + "address": "10.0.200.1", + "annotation": "", + "childAction": "", + "delayedHeartbeat": "no", + "dn": "topology/pod-1/node-102", + "extMngdBy": "", + "fabricSt": "active", + "id": "102", + "lastStateModTs": "2018-05-29T16:53:17.790-07:00", + "lcOwn": "local", + "modTs": "2018-05-29T16:53:58.207-07:00", + "model": "N9K-C93180YC-FX", + "monPolDn": "uni/fabric/monfab-default", + "name": "leaf102", + "nameAlias": "", + "nodeType": "unspecified", + "role": "leaf", + "serial": "FDO20510HCA", + "status": "", + "uid": "0", + "vendor": "Cisco Systems, Inc", + "version": "" + } + } + }, + { + "fabricNode": { + "attributes": { + "adSt": "on", + "address": "10.0.200.2", + "annotation": "", + "childAction": "", + "delayedHeartbeat": "no", + "dn": "topology/pod-1/node-202", + "extMngdBy": "", + "fabricSt": "active", + "id": "202", + "lastStateModTs": "2018-05-29T16:53:17.892-07:00", + "lcOwn": "local", + "modTs": "2018-05-29T16:53:58.202-07:00", + "model": "N9K-C9336PQ", + "monPolDn": "uni/fabric/monfab-default", + "name": "spine202", + "nameAlias": "", + "nodeType": "unspecified", + "role": "spine", + "serial": "SAL2014N5T7", + "status": "", + "uid": "0", + "vendor": "Cisco Systems, Inc", + "version": "" + } + } + }, + { + "fabricNode": { + "attributes": { + "adSt": "on", + "address": "10.0.200.3", + "annotation": "", + "childAction": "", + "delayedHeartbeat": "no", + "dn": "topology/pod-1/node-3", + "extMngdBy": "", + "fabricSt": "unknown", + "id": "3", + "lastStateModTs": "1969-12-31T17:00:00.000-07:00", + "lcOwn": "local", + "modTs": "2018-05-10T19:01:36.971-07:00", + "model": "APIC-SERVER-M1", + "monPolDn": "uni/fabric/monfab-default", + "name": "apic3", + "nameAlias": "", + "nodeType": "unspecified", + "role": "controller", + "serial": "FCH1927V11T", + "status": "", + "uid": "0", + "vendor": "Cisco Systems, Inc", + "version": "A" + } + } + }, + { + "fabricNode": { + "attributes": { + "adSt": "on", + "address": "10.0.200.4", + "annotation": "", + "childAction": "", + "delayedHeartbeat": "no", + "dn": "topology/pod-1/node-1", + "extMngdBy": "", + "fabricSt": "unknown", + "id": "1", + "lastStateModTs": "1969-12-31T17:00:00.000-07:00", + "lcOwn": "local", + "modTs": "2016-07-20T11:29:10.877-07:00", + "model": "APIC-SERVER-M1", + "monPolDn": "uni/fabric/monfab-default", + "name": "apic1", + "nameAlias": "", + "nodeType": "unspecified", + "role": "controller", + "serial": "FCH1928V0SL", + "status": "", + "uid": "0", + "vendor": "Cisco Systems, Inc", + "version": "A" + } + } + }, + { + "fabricNode": { + "attributes": { + "adSt": "on", + "address": "10.0.200.5", + "annotation": "", + "childAction": "", + "delayedHeartbeat": "no", + "dn": "topology/pod-1/node-201", + "extMngdBy": "", + "fabricSt": "active", + "id": "201", + "lastStateModTs": "2018-05-29T16:53:17.887-07:00", + "lcOwn": "local", + "modTs": "2018-05-29T16:54:03.494-07:00", + "model": "N9K-C9336PQ", + "monPolDn": "uni/fabric/monfab-default", + "name": "spine201", + "nameAlias": "", + "nodeType": "unspecified", + "role": "spine", + "serial": "SAL2014N5U4", + "status": "", + "uid": "0", + "vendor": "Cisco Systems, Inc", + "version": "" + } + } + }, + { + "fabricNode": { + "attributes": { + "adSt": "on", + "address": "10.0.200.6", + "annotation": "", + "childAction": "", + "delayedHeartbeat": "no", + "dn": "topology/pod-1/node-2", + "extMngdBy": "", + "fabricSt": "unknown", + "id": "2", + "lastStateModTs": "1969-12-31T17:00:00.000-07:00", + "lcOwn": "local", + "modTs": "2016-07-20T12:19:20.101-07:00", + "model": "APIC-SERVER-M1", + "monPolDn": "uni/fabric/monfab-default", + "name": "apic2", + "nameAlias": "", + "nodeType": "unspecified", + "role": "controller", + "serial": "FCH1928V06Q", + "status": "", + "uid": "0", + "vendor": "Cisco Systems, Inc", + "version": "A" + } + } + } + ] +} diff --git a/cisco_aci/tests/fixtures/fabric/62cb899b6e7f6b81035914cfac47b915.txt b/cisco_aci/tests/fixtures/fabric/62cb899b6e7f6b81035914cfac47b915.txt new file mode 100644 index 0000000000000..af6724428d854 --- /dev/null +++ b/cisco_aci/tests/fixtures/fabric/62cb899b6e7f6b81035914cfac47b915.txt @@ -0,0 +1,11161 @@ +{ + "totalCount": "102", + "imdata": [ + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/43]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/43", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/44]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/44", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/45]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/45", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/46]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/46", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/47]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/47", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/48]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/48", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/1]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/1", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9216", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "controller,epg,infra" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/2]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/2", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9216", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "controller,epg,infra" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/3]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/3", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-29T16:53:17.549-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9216", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "controller,epg,infra" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/4]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/4", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/5]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/5", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/6]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/6", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/7]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/7", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-21T16:06:00.204-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/9]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/9", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/8]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/8", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-21T16:06:00.204-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/10]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/10", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/11]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/11", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/12]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/12", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/13]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/13", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/14]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/14", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/15]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/15", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg,span" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/16]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/16", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/17]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/17", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/18]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/18", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/19]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/19", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "1G", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "down", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/20]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/20", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:18:14.107-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "blacklist" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/21]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/21", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/22]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/22", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/23]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/23", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/24]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/24", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/25]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/25", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/26]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/26", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/27]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/27", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/28]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/28", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/29]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/29", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/30]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/30", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/31]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/31", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/32]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/32", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/33]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/33", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T19:44:39.402-07:00", + "mode": "fex-fabric", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9222", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/34]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/34", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/35]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/35", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/36]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/36", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/37]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/37", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/38]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/38", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/39]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/39", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/40]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/40", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/41]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/41", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/42]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/42", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/43]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/43", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/44]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/44", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/45]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/45", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/46]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/46", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/47]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/47", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:20:23.869-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/48]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/48", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-19T12:05:21.649-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/49]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/49", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "fabric" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/50]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/50", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:18.837-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "fabric" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/51]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/51", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:18:14.211-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/52]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/52", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:18:14.211-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/53]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/53", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:18:14.211-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth1/54]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/54", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:18:14.211-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/1]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/1", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/2]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/2", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/3]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/3", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/4]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/4", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/5]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/5", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/6]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/6", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/7]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/7", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/8]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/8", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/9]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/9", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/10]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/10", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/11]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/11", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/12]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/12", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/13]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/13", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/14]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/14", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/15]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/15", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/16]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/16", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/17]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/17", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/18]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/18", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/19]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/19", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/20]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/20", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/21]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/21", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/22]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/22", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/23]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/23", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/24]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/24", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/25]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/25", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/26]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/26", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/27]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/27", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/28]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/28", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/29]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/29", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/30]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/30", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/31]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/31", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/32]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/32", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/33]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/33", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/34]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/34", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/35]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/35", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/36]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/36", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/37]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/37", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/38]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/38", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/39]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/39", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/40]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/40", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/41]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/41", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-101/sys/phys-[eth101/1/42]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth101/1/42", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:24:32.560-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "extchhp", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + } + } + } + ] +} \ No newline at end of file diff --git a/cisco_aci/tests/fixtures/fabric/77987eb09f39a2abbc59e55aaa9d40ab.txt b/cisco_aci/tests/fixtures/fabric/77987eb09f39a2abbc59e55aaa9d40ab.txt new file mode 100644 index 0000000000000..82f53e31dd695 --- /dev/null +++ b/cisco_aci/tests/fixtures/fabric/77987eb09f39a2abbc59e55aaa9d40ab.txt @@ -0,0 +1,3865 @@ +{ + "totalCount": "36", + "imdata": [ + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/33]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/33", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/34]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/34", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/35]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/35", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/36]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/36", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/1]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/1", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:18.077-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "fabric" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/2]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/2", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.213-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "fabric" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/3]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/3", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/4]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/4", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/5]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/5", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/6]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/6", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/7]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/7", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/8]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/8", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/9]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/9", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/10]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/10", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/11]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/11", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/12]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/12", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/13]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/13", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/14]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/14", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/15]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/15", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/16]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/16", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/17]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/17", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/18]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/18", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/19]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/19", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/20]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/20", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/21]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/21", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/22]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/22", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/23]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/23", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/24]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/24", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/25]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/25", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/26]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/26", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/27]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/27", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/28]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/28", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/29]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/29", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/30]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/30", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/31]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/31", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-202/sys/phys-[eth1/32]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fecMode": "inherit", + "id": "eth1/32", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2017-09-27T16:26:58.571-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9150", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + } + } + } + ] +} \ No newline at end of file diff --git a/cisco_aci/tests/fixtures/fabric/79af98fe9c1069b329af3b4828712ddd.txt b/cisco_aci/tests/fixtures/fabric/79af98fe9c1069b329af3b4828712ddd.txt deleted file mode 100644 index a5831afaa0094..0000000000000 --- a/cisco_aci/tests/fixtures/fabric/79af98fe9c1069b329af3b4828712ddd.txt +++ /dev/null @@ -1 +0,0 @@ -{"totalCount":"54","imdata":[{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/33]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/33","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/34]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/34","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/35]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/35","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/36]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/36","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/37]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/37","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/38]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/38","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/39]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/39","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/40]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/40","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/41]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/41","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/42]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/42","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/43]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/43","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/44]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/44","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/45]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/45","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/46]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/46","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/47]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/47","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/48]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/48","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-19T12:05:21.651-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/49]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/49","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"fabric"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/50]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/50","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:18.730-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"fabric"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/51]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/51","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:39:51.601-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/52]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/52","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:39:51.601-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/53]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/53","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:39:51.601-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/54]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/54","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:39:51.601-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/1]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/1","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9216","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"controller,epg,infra"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/2]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/2","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9216","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"controller,epg,infra"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/3]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/3","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-29T16:53:16.789-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9216","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"controller,epg,infra"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/4]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/4","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/15]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/15","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg,span"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/16]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/16","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/17]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/17","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/18]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/18","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/5]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/5","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/6]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/6","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/7]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/7","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-21T16:06:00.203-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/8]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/8","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-21T16:06:00.203-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/9]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/9","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/10]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/10","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/11]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/11","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/12]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/12","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/13]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/13","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/14]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/14","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/20]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/20","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/19]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/19","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/21]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/21","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/22]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/22","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/23]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/23","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/24]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/24","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/25]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/25","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/26]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/26","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/27]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/27","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/28]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/28","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/29]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/29","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/30]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/30","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/31]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/31","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-102/sys/phys-[eth1/32]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/32","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:40:37.333-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}}]} \ No newline at end of file diff --git a/cisco_aci/tests/fixtures/fabric/7b06db4060591652e39b305410a03a2a.txt b/cisco_aci/tests/fixtures/fabric/7b06db4060591652e39b305410a03a2a.txt deleted file mode 100644 index d393ce4267cf2..0000000000000 --- a/cisco_aci/tests/fixtures/fabric/7b06db4060591652e39b305410a03a2a.txt +++ /dev/null @@ -1 +0,0 @@ -{"totalCount":"36","imdata":[{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/33]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/33","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/34]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/34","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/35]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/35","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/36]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/36","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/1]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/1","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:18.077-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"fabric"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/2]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/2","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.213-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"fabric"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/3]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/3","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/4]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/4","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/5]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/5","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/6]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/6","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/7]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/7","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/8]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/8","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/9]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/9","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/10]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/10","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/11]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/11","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/12]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/12","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/13]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/13","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/14]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/14","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/15]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/15","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/16]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/16","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/17]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/17","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/18]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/18","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/19]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/19","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/20]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/20","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/21]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/21","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/22]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/22","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/23]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/23","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/24]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/24","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/25]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/25","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/26]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/26","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/27]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/27","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/28]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/28","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/29]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/29","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/30]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/30","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/31]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/31","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-202/sys/phys-[eth1/32]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/32","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:26:58.571-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}}]} \ No newline at end of file diff --git a/cisco_aci/tests/fixtures/fabric/9d167692ace22bc1013437072c55a641.txt b/cisco_aci/tests/fixtures/fabric/9d167692ace22bc1013437072c55a641.txt new file mode 100644 index 0000000000000..e26a892028126 --- /dev/null +++ b/cisco_aci/tests/fixtures/fabric/9d167692ace22bc1013437072c55a641.txt @@ -0,0 +1,5881 @@ +{ + "totalCount": "54", + "imdata": [ + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/33]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/33", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/34]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/34", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/35]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/35", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/36]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/36", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/37]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/37", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/38]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/38", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/39]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/39", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/40]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/40", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/41]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/41", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/42]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/42", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/43]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/43", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/44]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/44", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/45]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/45", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/46]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/46", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/47]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/47", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/48]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/48", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-19T12:05:21.651-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/49]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/49", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "fabric" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/50]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/50", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:18.730-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "fabric" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/51]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/51", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:39:51.601-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/52]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/52", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:39:51.601-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/53]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/53", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:39:51.601-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/54]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/54", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer3", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:39:51.601-07:00", + "mode": "trunk", + "monPolDn": "uni/fabric/monfab-default", + "mtu": "9366", + "name": "", + "pathSDescr": "", + "portT": "fab", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "fabric,fabric-ext" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/1]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/1", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9216", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "controller,epg,infra" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/2]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/2", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9216", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "controller,epg,infra" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/3]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/3", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-29T16:53:16.789-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9216", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "controller,epg,infra" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/4]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/4", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/15]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/15", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg,span" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/16]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/16", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/17]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/17", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/18]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/18", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/5]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/5", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/6]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/6", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-10T19:01:00.211-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/7]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/7", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-21T16:06:00.203-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/8]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/8", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-05-21T16:06:00.203-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "enabled", + "trunkLog": "default", + "usage": "epg" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/9]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/9", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/10]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/10", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "10G", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/11]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/11", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/12]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/12", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/13]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/13", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/14]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/14", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/20]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/20", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/19]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/19", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/21]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/21", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/22]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/22", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/23]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/23", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/24]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/24", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/25]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/25", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/26]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/26", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/27]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/27", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/28]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/28", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/29]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/29", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/30]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/30", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/31]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/31", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + }, + "children": [ + { + "ethpmPhysIf": { + "attributes": { + "accessVlan": "unknown", + "allowedVlans": "", + "backplaneMac": "00:00:00:00:00:00", + "bundleBupId": "0", + "bundleIndex": "unspecified", + "cfgAccessVlan": "unknown", + "cfgNativeVlan": "unknown", + "childAction": "", + "currErrIndex": "0", + "diags": "none", + "encap": "0", + "errDisTimerRunning": "no", + "errVlanStatusHt": "0", + "errVlans": "", + "hwBdId": "0", + "hwResourceId": "0", + "intfT": "phy", + "iod": "0", + "lastErrors": "8192", + "lastLinkStChg": "1970-01-01T00:00:00.000+00:00", + "media": "0", + "modTs": "2024-06-11T16:43:23.908+00:00", + "monPolDn": "uni/infra/moninfra-default", + "nativeVlan": "unknown", + "numOfSI": "0", + "operBitset": "", + "operDceMode": "off", + "operDuplex": "auto", + "operEEERxWkTime": "0", + "operEEEState": "not-applicable", + "operEEETxWkTime": "0", + "operErrDisQual": "admin-down", + "operFecMode": "inherit", + "operFlowCtrl": "15", + "operMdix": "auto", + "operMode": "trunk", + "operModeDetail": "trunk", + "operPhyEnSt": "down", + "operRouterMac": "00:00:00:00:00:00", + "operSpeed": "inherit", + "operSt": "up", + "operStQual": "link-up", + "operStQualCode": "0", + "operVlans": "", + "osSum": "ok", + "portCfgWaitFlags": "0", + "primaryVlan": "unknown", + "resetCtr": "0", + "rn": "phys", + "siList": "", + "status": "", + "txT": "unknown", + "usage": "discovery", + "userCfgdFlags": "0", + "vdcId": "0" + } + } + } + ] + } + }, + + { + "l1PhysIf": { + "attributes": { + "adminSt": "up", + "autoNeg": "on", + "brkoutMap": "none", + "bw": "0", + "childAction": "", + "delay": "1", + "descr": "", + "dn": "topology/pod-1/node-102/sys/phys-[eth1/32]", + "dot1qEtherType": "0x8100", + "ethpmCfgFailedBmp": "", + "ethpmCfgFailedTs": "00:00:00:00.000", + "ethpmCfgState": "0", + "fcotChannelNumber": "Channel32", + "fecMode": "inherit", + "id": "eth1/32", + "inhBw": "unspecified", + "isReflectiveRelayCfgSupported": "Supported", + "layer": "Layer2", + "lcOwn": "local", + "linkDebounce": "100", + "linkLog": "default", + "mdix": "auto", + "medium": "broadcast", + "modTs": "2018-03-16T18:40:37.333-07:00", + "mode": "trunk", + "monPolDn": "uni/infra/moninfra-default", + "mtu": "9000", + "name": "", + "pathSDescr": "", + "portT": "leaf", + "prioFlowCtrl": "auto", + "reflectiveRelayEn": "off", + "routerMac": "not-applicable", + "snmpTrapSt": "enable", + "spanMode": "not-a-span-dest", + "speed": "inherit", + "status": "", + "switchingSt": "disabled", + "trunkLog": "default", + "usage": "discovery" + } + } + } + ] +} \ No newline at end of file diff --git a/cisco_aci/tests/fixtures/fabric/dace1ecad6f3d9a50eb8d4a15631ba88.txt b/cisco_aci/tests/fixtures/fabric/dace1ecad6f3d9a50eb8d4a15631ba88.txt deleted file mode 100644 index 53353ab728d65..0000000000000 --- a/cisco_aci/tests/fixtures/fabric/dace1ecad6f3d9a50eb8d4a15631ba88.txt +++ /dev/null @@ -1 +0,0 @@ -{"totalCount":"102","imdata":[{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/43]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/43","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/44]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/44","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/45]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/45","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/46]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/46","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/47]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/47","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/48]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/48","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/1]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/1","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9216","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"controller,epg,infra"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/2]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/2","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9216","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"controller,epg,infra"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/3]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/3","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-29T16:53:17.549-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9216","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"controller,epg,infra"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/4]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/4","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/5]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/5","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/6]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/6","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/7]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/7","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-21T16:06:00.204-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/9]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/9","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/8]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/8","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-21T16:06:00.204-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/10]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/10","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"10G","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/11]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/11","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/12]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/12","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/13]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/13","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/14]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/14","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/15]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/15","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg,span"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/16]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/16","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/17]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/17","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/18]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/18","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/19]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/19","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"1G","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"down","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/20]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/20","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:18:14.107-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"blacklist"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/21]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/21","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/22]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/22","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/23]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/23","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/24]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/24","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/25]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/25","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/26]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/26","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/27]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/27","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/28]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/28","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/29]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/29","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/30]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/30","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/31]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/31","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/32]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/32","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/33]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/33","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T19:44:39.402-07:00","mode":"fex-fabric","monPolDn":"uni/infra/moninfra-default","mtu":"9222","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/34]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/34","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/35]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/35","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/36]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/36","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/37]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/37","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/38]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/38","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/39]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/39","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/40]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/40","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/41]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/41","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/42]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/42","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/43]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/43","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/44]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/44","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/45]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/45","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/46]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/46","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/47]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/47","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:20:23.869-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/48]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/48","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-19T12:05:21.649-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"leaf","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"epg"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/49]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/49","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.211-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"fabric"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/50]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/50","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:18.837-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"fabric"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/51]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/51","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:18:14.211-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/52]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/52","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:18:14.211-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/53]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/53","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:18:14.211-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth1/54]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth1/54","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:18:14.211-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9366","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/1]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/1","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/2]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/2","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/3]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/3","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/4]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/4","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/5]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/5","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/6]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/6","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/7]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/7","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/8]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/8","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/9]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/9","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/10]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/10","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/11]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/11","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/12]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/12","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/13]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/13","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/14]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/14","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/15]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/15","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/16]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/16","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/17]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/17","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/18]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/18","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/19]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/19","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/20]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/20","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/21]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/21","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/22]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/22","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/23]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/23","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/24]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/24","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/25]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/25","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/26]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/26","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/27]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/27","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/28]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/28","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/29]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/29","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/30]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/30","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/31]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/31","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/32]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/32","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/33]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/33","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/34]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/34","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/35]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/35","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/36]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/36","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/37]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/37","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/38]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/38","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/39]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/39","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/40]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/40","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/41]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/41","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-101/sys/phys-[eth101/1/42]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fcotChannelNumber":"Channel32","fecMode":"inherit","id":"eth101/1/42","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer2","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-03-16T18:24:32.560-07:00","mode":"trunk","monPolDn":"uni/infra/moninfra-default","mtu":"9000","name":"","pathSDescr":"","portT":"extchhp","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"discovery"}}}]} \ No newline at end of file diff --git a/cisco_aci/tests/fixtures/fabric/ded65ac48170a7a3d8914950607e4e18.txt b/cisco_aci/tests/fixtures/fabric/ded65ac48170a7a3d8914950607e4e18.txt deleted file mode 100644 index f4f818f2766d5..0000000000000 --- a/cisco_aci/tests/fixtures/fabric/ded65ac48170a7a3d8914950607e4e18.txt +++ /dev/null @@ -1 +0,0 @@ -{"totalCount":"36","imdata":[{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/33]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/33","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/34]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/34","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/35]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/35","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/36]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/36","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/1]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/1","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:18.095-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"fabric"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/2]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/2","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2018-05-10T19:01:00.212-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"enabled","trunkLog":"default","usage":"fabric"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/3]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/3","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/4]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/4","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/5]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/5","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/6]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/6","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/7]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/7","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/8]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/8","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/9]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/9","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/10]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/10","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/11]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/11","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/12]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/12","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/13]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/13","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/14]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/14","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/15]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/15","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/16]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/16","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/17]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/17","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/18]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/18","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/19]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/19","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/20]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/20","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/21]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/21","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/22]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/22","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/23]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/23","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/24]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/24","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/25]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/25","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/26]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/26","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/27]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/27","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/28]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/28","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/29]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/29","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/30]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/30","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/31]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/31","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}},{"l1PhysIf":{"attributes":{"adminSt":"up","autoNeg":"on","brkoutMap":"none","bw":"0","childAction":"","delay":"1","descr":"","dn":"topology/pod-1/node-201/sys/phys-[eth1/32]","dot1qEtherType":"0x8100","ethpmCfgFailedBmp":"","ethpmCfgFailedTs":"00:00:00:00.000","ethpmCfgState":"0","fecMode":"inherit","id":"eth1/32","inhBw":"unspecified","isReflectiveRelayCfgSupported":"Supported","layer":"Layer3","lcOwn":"local","linkDebounce":"100","linkLog":"default","mdix":"auto","medium":"broadcast","modTs":"2017-09-27T16:04:02.984-07:00","mode":"trunk","monPolDn":"uni/fabric/monfab-default","mtu":"9150","name":"","pathSDescr":"","portT":"fab","prioFlowCtrl":"auto","reflectiveRelayEn":"off","routerMac":"not-applicable","snmpTrapSt":"enable","spanMode":"not-a-span-dest","speed":"inherit","status":"","switchingSt":"disabled","trunkLog":"default","usage":"fabric,fabric-ext"}}}]} \ No newline at end of file diff --git a/cisco_aci/tests/fixtures/metadata.py b/cisco_aci/tests/fixtures/metadata.py new file mode 100644 index 0000000000000..7afb1b4e770ee --- /dev/null +++ b/cisco_aci/tests/fixtures/metadata.py @@ -0,0 +1,2730 @@ +# (C) Datadog, Inc. 2024-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +import six + +if six.PY3: + from datadog_checks.cisco_aci.models import DeviceMetadataList, InterfaceMetadata, NetworkDevicesMetadata +else: + DeviceMetadataList = None + NetworkDevicesMetadata = None + +DEVICE_METADATA = [ + { + 'id': 'default:10.0.200.0', + 'id_tags': ['namespace:default'], + 'integration': 'cisco-aci', + 'device_type': 'switch', + 'tags': [ + 'device_vendor:cisco', + 'device_namespace:default', + 'device_hostname:topology/pod-1/node-101', + 'hostname:topology/pod-1/node-101', + 'device_ip:10.0.200.0', + 'device_id:default:10.0.200.0', + 'source:cisco-aci', + 'switch_role:leaf', + 'apic_role:leaf', + 'node_id:101', + 'fabric_state:active', + 'fabric_pod_id:1', + ], + 'ip_address': '10.0.200.0', + 'model': 'N9K-C93180YC-FX', + 'name': 'topology/pod-1/node-101', + 'serial_number': 'FDO20440TS1', + 'status': 1, + 'vendor': 'cisco', + 'version': '', + }, + { + 'id': 'default:10.0.200.1', + 'id_tags': ['namespace:default'], + 'integration': 'cisco-aci', + 'device_type': 'switch', + 'tags': [ + 'device_vendor:cisco', + 'device_namespace:default', + 'device_hostname:topology/pod-1/node-102', + 'hostname:topology/pod-1/node-102', + 'device_ip:10.0.200.1', + 'device_id:default:10.0.200.1', + 'source:cisco-aci', + 'switch_role:leaf', + 'apic_role:leaf', + 'node_id:102', + 'fabric_state:active', + 'fabric_pod_id:1', + ], + 'ip_address': '10.0.200.1', + 'model': 'N9K-C93180YC-FX', + 'name': 'topology/pod-1/node-102', + 'serial_number': 'FDO20510HCA', + 'status': 1, + 'vendor': 'cisco', + 'version': '', + }, + { + 'id': 'default:10.0.200.2', + 'id_tags': ['namespace:default'], + 'integration': 'cisco-aci', + 'device_type': 'switch', + 'tags': [ + 'device_vendor:cisco', + 'device_namespace:default', + 'device_hostname:topology/pod-1/node-202', + 'hostname:topology/pod-1/node-202', + 'device_ip:10.0.200.2', + 'device_id:default:10.0.200.2', + 'source:cisco-aci', + 'switch_role:spine', + 'apic_role:spine', + 'node_id:202', + 'fabric_state:active', + 'fabric_pod_id:1', + ], + 'ip_address': '10.0.200.2', + 'model': 'N9K-C9336PQ', + 'name': 'topology/pod-1/node-202', + 'serial_number': 'SAL2014N5T7', + 'status': 1, + 'vendor': 'cisco', + 'version': '', + }, + { + 'id': 'default:10.0.200.3', + 'id_tags': ['namespace:default'], + 'integration': 'cisco-aci', + 'device_type': 'other', + 'tags': [ + 'device_vendor:cisco', + 'device_namespace:default', + 'device_hostname:topology/pod-1/node-3', + 'hostname:topology/pod-1/node-3', + 'device_ip:10.0.200.3', + 'device_id:default:10.0.200.3', + 'source:cisco-aci', + 'apic_role:controller', + 'node_id:3', + 'fabric_state:unknown', + 'fabric_pod_id:1', + ], + 'ip_address': '10.0.200.3', + 'model': 'APIC-SERVER-M1', + 'name': 'topology/pod-1/node-3', + 'serial_number': 'FCH1927V11T', + 'status': 4, + 'vendor': 'cisco', + 'version': 'A', + }, + { + 'id': 'default:10.0.200.4', + 'id_tags': ['namespace:default'], + 'integration': 'cisco-aci', + 'device_type': 'other', + 'tags': [ + 'device_vendor:cisco', + 'device_namespace:default', + 'device_hostname:topology/pod-1/node-1', + 'hostname:topology/pod-1/node-1', + 'device_ip:10.0.200.4', + 'device_id:default:10.0.200.4', + 'source:cisco-aci', + 'apic_role:controller', + 'node_id:1', + 'fabric_state:unknown', + 'fabric_pod_id:1', + ], + 'ip_address': '10.0.200.4', + 'model': 'APIC-SERVER-M1', + 'name': 'topology/pod-1/node-1', + 'serial_number': 'FCH1928V0SL', + 'status': 4, + 'vendor': 'cisco', + 'version': 'A', + }, + { + 'id': 'default:10.0.200.5', + 'id_tags': ['namespace:default'], + 'integration': 'cisco-aci', + 'device_type': 'switch', + 'tags': [ + 'device_vendor:cisco', + 'device_namespace:default', + 'device_hostname:topology/pod-1/node-201', + 'hostname:topology/pod-1/node-201', + 'device_ip:10.0.200.5', + 'device_id:default:10.0.200.5', + 'source:cisco-aci', + 'switch_role:spine', + 'apic_role:spine', + 'node_id:201', + 'fabric_state:active', + 'fabric_pod_id:1', + ], + 'ip_address': '10.0.200.5', + 'model': 'N9K-C9336PQ', + 'name': 'topology/pod-1/node-201', + 'serial_number': 'SAL2014N5U4', + 'status': 1, + 'vendor': 'cisco', + 'version': '', + }, + { + 'id': 'default:10.0.200.6', + 'id_tags': ['namespace:default'], + 'integration': 'cisco-aci', + 'device_type': 'other', + 'tags': [ + 'device_vendor:cisco', + 'device_namespace:default', + 'device_hostname:topology/pod-1/node-2', + 'hostname:topology/pod-1/node-2', + 'device_ip:10.0.200.6', + 'device_id:default:10.0.200.6', + 'source:cisco-aci', + 'apic_role:controller', + 'node_id:2', + 'fabric_state:unknown', + 'fabric_pod_id:1', + ], + 'ip_address': '10.0.200.6', + 'model': 'APIC-SERVER-M1', + 'name': 'topology/pod-1/node-2', + 'serial_number': 'FCH1928V06Q', + 'status': 4, + 'vendor': 'cisco', + 'version': 'A', + }, +] + +INTERFACE_METADATA = [ + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/43', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/44', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/45', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/46', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/47', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/48', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/1', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/2', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/3', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/4', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/5', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/6', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/7', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/9', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/8', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/10', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/11', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/12', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/13', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/14', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/15', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/16', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/17', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/18', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/19', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 2, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/20', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/21', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/22', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/23', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/24', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/25', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/26', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/27', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/28', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/29', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/30', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/31', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/32', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/33', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/34', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/35', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/36', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/37', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/38', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/39', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/40', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/41', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/42', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/43', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/44', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/45', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/46', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/47', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/48', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/49', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/50', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/51', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/52', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/53', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/54', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/1', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/2', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/3', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/4', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/5', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/6', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/7', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/8', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/9', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/10', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/11', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/12', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/13', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/14', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/15', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/16', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/17', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/18', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/19', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/20', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/21', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/22', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/23', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/24', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/25', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/26', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/27', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/28', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/29', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/30', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/31', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/32', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/33', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/34', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/35', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/36', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/37', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/38', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/39', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/40', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/41', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.0', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth101/1/42', + 'mac_address': 'not-applicable', + 'name': '', + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/33', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/34', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/35', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/36', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/37', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/38', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/39', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/40', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/41', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/42', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/43', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/44', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/45', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/46', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/47', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/48', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/49', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/50', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/51', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/52', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/53', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/54', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/1', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/2', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/3', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/4', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/15', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/16', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/17', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/18', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/5', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/6', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/7', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/8', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/9', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/10', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/11', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/12', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/13', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/14', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/20', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/19', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/21', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/22', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/23', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/24', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/25', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/26', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/27', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/28', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/29', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/30', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/31', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.1', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/32', + 'mac_address': 'not-applicable', + 'name': '', + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/33', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/34', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/35', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/36', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/1', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/2', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/3', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/4', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/5', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/6', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/7', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/8', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/9', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/10', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/11', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/12', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/13', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/14', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/15', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/16', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/17', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/18', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/19', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/20', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/21', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/22', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/23', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/24', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/25', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/26', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/27', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/28', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/29', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/30', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/31', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.2', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/32', + 'mac_address': 'not-applicable', + 'name': '', + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/33', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/34', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/35', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/36', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/1', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/2', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/3', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/4', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/5', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/6', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/7', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/8', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/9', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/10', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/11', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/12', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/13', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/14', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/15', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/16', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/17', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/18', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/19', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/20', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/21', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/22', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/23', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/24', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/25', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/26', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/27', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/28', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/29', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/30', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/31', + 'mac_address': 'not-applicable', + 'name': '', + 'oper_status': 1, + }, + { + 'admin_status': 1, + 'device_id': 'default:10.0.200.5', + 'id_tags': [ + 'interface:', + ], + 'index': 'eth1/32', + 'mac_address': 'not-applicable', + 'name': '', + }, +] + +EXPECTED_DEVICE_METADATA_RESULT = DeviceMetadataList(device_metadata=DEVICE_METADATA) + +# "2012-01-14 03:21:34" in seconds +MOCK_TIME_EPOCH = 1326511294 + +EXPECTED_INTERFACE_METADATA = [InterfaceMetadata(**im) for im in INTERFACE_METADATA] + +EXPECTED_DEVICE_METADATA_EVENTS = [ + NetworkDevicesMetadata(namespace='default', devices=[ndm_meta], collect_timestamp=MOCK_TIME_EPOCH) + for ndm_meta in DEVICE_METADATA +] +EXPECTED_INTERFACE_METADATA_EVENTS = [ + NetworkDevicesMetadata( + namespace='default', interfaces=INTERFACE_METADATA[0:100], collect_timestamp=MOCK_TIME_EPOCH + ), + NetworkDevicesMetadata( + namespace='default', interfaces=INTERFACE_METADATA[100:200], collect_timestamp=MOCK_TIME_EPOCH + ), + NetworkDevicesMetadata( + namespace='default', interfaces=INTERFACE_METADATA[200::], collect_timestamp=MOCK_TIME_EPOCH + ), +] diff --git a/cisco_aci/tests/test_fabric.py b/cisco_aci/tests/test_fabric.py index aa9830b89c355..4d15cb7be62d5 100644 --- a/cisco_aci/tests/test_fabric.py +++ b/cisco_aci/tests/test_fabric.py @@ -2,10 +2,24 @@ # All rights reserved # Licensed under Simplified BSD License (see LICENSE) +import six + from datadog_checks.base.utils.containers import hash_mutable from datadog_checks.cisco_aci import CiscoACICheck from datadog_checks.cisco_aci.api import Api +if six.PY3: + from .fixtures.metadata import ( + EXPECTED_DEVICE_METADATA_EVENTS, + EXPECTED_INTERFACE_METADATA, + EXPECTED_INTERFACE_METADATA_EVENTS, + ) +else: + EXPECTED_DEVICE_METADATA_RESULT = None + EXPECTED_INTERFACE_METADATA_RESULT = None + +from freezegun import freeze_time + from . import common @@ -15,22 +29,64 @@ def test_fabric_mocked(aggregator): api.wrapper_factory = common.FakeFabricSessionWrapper check._api_cache[hash_mutable(common.CONFIG_WITH_TAGS)] = api - check.check({}) - tags000 = ['cisco', 'project:cisco_aci', 'medium:broadcast', 'snmpTrapSt:enable', 'fabric_pod_id:1'] tags101 = tags000 + ['node_id:101'] tags102 = tags000 + ['node_id:102'] tags201 = tags000 + ['node_id:201'] tags202 = tags000 + ['node_id:202'] tags = ['fabric_state:active', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci'] - tagsleaf101 = tags + ['switch_role:leaf', 'apic_role:leaf', 'node_id:101'] - tagsleaf102 = tags + ['switch_role:leaf', 'apic_role:leaf', 'node_id:102'] - tagsspine201 = tags + ['switch_role:spine', 'apic_role:spine', 'node_id:201'] - tagsspine202 = tags + ['switch_role:spine', 'apic_role:spine', 'node_id:202'] + leaf101 = ['switch_role:leaf', 'apic_role:leaf', 'node_id:101'] + leaf102 = ['switch_role:leaf', 'apic_role:leaf', 'node_id:102'] + leaf201 = ['switch_role:spine', 'apic_role:spine', 'node_id:201'] + leaf202 = ['switch_role:spine', 'apic_role:spine', 'node_id:202'] + tagsleaf101 = tags + leaf101 + tagsleaf102 = tags + leaf102 + tagsspine201 = tags + leaf201 + tagsspine202 = tags + leaf202 hn101 = 'pod-1-node-101' hn102 = 'pod-1-node-102' hn201 = 'pod-1-node-201' hn202 = 'pod-1-node-202' + + with freeze_time("2012-01-14 03:21:34"): + check.check({}) + + if six.PY3: + ndm_metadata = aggregator.get_event_platform_events("network-devices-metadata") + device_metadata = [dm for dm in ndm_metadata if 'devices' in dm and len(dm['devices']) > 0] + interface_metadata = [im for im in ndm_metadata if 'interfaces' in im and len(im['interfaces']) > 0] + + expected_devices = [event.model_dump() for event in EXPECTED_DEVICE_METADATA_EVENTS] + expected_interfaces = [event.model_dump(exclude_none=True) for event in EXPECTED_INTERFACE_METADATA_EVENTS] + + assert device_metadata == expected_devices + assert interface_metadata == expected_interfaces + + interface_tag_mapping = { + 'default:10.0.200.0': hn101, + 'default:10.0.200.1': hn102, + 'default:10.0.200.5': hn201, + 'default:10.0.200.2': hn202, + } + + for interface in EXPECTED_INTERFACE_METADATA: + print(interface) + hn = interface_tag_mapping.get(interface.device_id) + device_namespace, device_ip = interface.device_id.split(':') + interface_tags = [ + 'port:{}'.format(interface.index), + 'medium:broadcast', + 'snmpTrapSt:enable', + 'node_id:{}'.format(hn.split('-')[-1]), + 'fabric_pod_id:1', + 'device_ip:{}'.format(device_ip), + 'device_namespace:{}'.format(device_namespace), + 'interface.status:{}'.format(interface.status), + ] + aggregator.assert_metric( + 'cisco_aci.fabric.node.interface.status', value=1.0, tags=interface_tags, hostname=hn + ) + metric_name = 'cisco_aci.fabric.port.ingr_total.bytes.cum' aggregator.assert_metric(metric_name, value=0.0, tags=tags101 + ['port:eth101/1/43'], hostname=hn101) aggregator.assert_metric(metric_name, value=0.0, tags=tags101 + ['port:eth101/1/44'], hostname=hn101) diff --git a/datadog_checks_base/changelog.d/17735.added b/datadog_checks_base/changelog.d/17735.added new file mode 100644 index 0000000000000..52f7db64dbecb --- /dev/null +++ b/datadog_checks_base/changelog.d/17735.added @@ -0,0 +1 @@ +[NDM] Add NDM metadata support for Cisco ACI diff --git a/datadog_checks_base/datadog_checks/base/checks/base.py b/datadog_checks_base/datadog_checks/base/checks/base.py index f86a6ea2c66f8..7b231b4575dce 100644 --- a/datadog_checks_base/datadog_checks/base/checks/base.py +++ b/datadog_checks_base/datadog_checks/base/checks/base.py @@ -662,6 +662,21 @@ def database_monitoring_metadata(self, raw_event): aggregator.submit_event_platform_event(self, self.check_id, to_native_string(raw_event), "dbm-metadata") + def event_platform_event(self, raw_event, event_track_type): + # type: (str, str) -> None + """Send an event platform event. + + Parameters: + + raw_event (str): + JSON formatted string representing the event to send + event_track_type (str): + type of event ingested and processed by the event platform + """ + if raw_event is None: + return + aggregator.submit_event_platform_event(self, self.check_id, to_native_string(raw_event), event_track_type) + def should_send_metric(self, metric_name): return not self._metric_excluded(metric_name) and self._metric_included(metric_name) From 21b4dabb8f3ff5cb0fb5239dff9e2e79c7c2e69f Mon Sep 17 00:00:00 2001 From: Thibault Krebs <150821137+thibaultkrebs@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:45:28 +0200 Subject: [PATCH 41/68] [LOGSC-1794] Change Logs assets file ownership to only Logs-backend (#17906) * Move logs backend as only owner for logs asset files following incident 27749 * Make sure ownership is logs backend by being last item --- .github/CODEOWNERS | 65 ++++------------------------------------------ 1 file changed, 5 insertions(+), 60 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index dad3a92a02fad..96983168b4bce 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -13,7 +13,7 @@ conf.yaml.default @DataDog/documentation @DataDog/agent-integrations @DataDo auto_conf.yaml @DataDog/documentation @DataDog/agent-integrations @DataDog/container-integrations manifest.json @DataDog/documentation @DataDog/agent-integrations **/assets @DataDog/documentation @DataDog/agent-integrations -**/assets/logs @DataDog/logs-backend @DataDog/documentation @DataDog/agent-integrations + # Dependencies /.deps/ @DataDog/agent-integrations @DataDog/agent-delivery @@ -30,106 +30,80 @@ manifest.json @DataDog/documentation @DataDog/agent-integrations /cert_manager/ @DataDog/container-integrations @DataDog/agent-integrations /cert_manager/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /cert_manager/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/cert_manager/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /container/ @DataDog/container-integrations @DataDog/agent-integrations /container/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /container/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/container/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /containerd/ @DataDog/container-integrations @DataDog/agent-integrations /containerd/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /containerd/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/containerd/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /cri/ @DataDog/container-integrations @DataDog/agent-integrations /cri/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /cri/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/cri/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /crio/ @DataDog/container-integrations @DataDog/agent-integrations /crio/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /crio/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/crio/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /datadog_cluster_agent/ @DataDog/container-integrations @DataDog/agent-integrations /datadog_cluster_agent/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/datadog_cluster_agent/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /datadog_operator/ @DataDog/container-ecosystems @DataDog/agent-integrations /datadog_operator/*.md @DataDog/container-ecosystems @DataDog/agent-integrations @DataDog/documentation -/datadog_operator/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /docker_daemon/ @DataDog/container-integrations @DataDog/agent-integrations /docker_daemon/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /docker_daemon/metadata.csv @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /docker_daemon/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/docker_daemon/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /ecs_fargate/ @DataDog/container-integrations @DataDog/agent-integrations /ecs_fargate/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /ecs_fargate/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/ecs_fargate/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /eks_fargate/ @DataDog/container-integrations @DataDog/agent-integrations /eks_fargate/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /eks_fargate/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/eks_fargate/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /helm/ @DataDog/container-integrations @DataDog/agent-integrations /helm/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /helm/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/helm/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kube_apiserver_metrics/ @DataDog/container-integrations @DataDog/agent-integrations /kube_apiserver_metrics/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kube_apiserver_metrics/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kube_apiserver_metrics/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kube_controller_manager/ @DataDog/container-integrations @DataDog/agent-integrations /kube_controller_manager/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kube_controller_manager/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kube_controller_manager/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kube_dns/ @DataDog/container-integrations @DataDog/agent-integrations /kube_dns/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kube_dns/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kube_dns/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kube_metrics_server/ @DataDog/container-integrations @DataDog/agent-integrations /kube_metrics_server/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kube_metrics_server/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kube_metrics_server/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kube_proxy/ @DataDog/container-integrations @DataDog/agent-integrations /kube_proxy/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kube_proxy/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kube_proxy/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kube_scheduler/ @DataDog/container-integrations @DataDog/agent-integrations /kube_scheduler/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kube_scheduler/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kube_scheduler/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kubelet/ @DataDog/container-integrations @DataDog/agent-integrations /kubelet/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kubelet/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kubelet/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kubernetes/ @DataDog/container-integrations @DataDog/agent-integrations /kubernetes/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kubernetes/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kubernetes/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kubernetes_state/ @DataDog/container-integrations @DataDog/agent-integrations /kubernetes_state/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kubernetes_state/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kubernetes_state/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /kubernetes_state_core/ @DataDog/container-integrations @DataDog/agent-integrations /kubernetes_state_core/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /kubernetes_state_core/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/kubernetes_state_core/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /nginx_ingress_controller/ @DataDog/container-integrations @DataDog/agent-integrations /nginx_ingress_controller/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /nginx_ingress_controller/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/nginx_ingress_controller/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /oom_kill/ @DataDog/container-integrations @DataDog/agent-integrations /oom_kill/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /oom_kill/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/oom_kill/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /openmetrics/ @DataDog/container-integrations @DataDog/agent-integrations /openmetrics/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /openmetrics/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/openmetrics/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /podman/ @DataDog/container-integrations @DataDog/agent-integrations /podman/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /podman/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/podman/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /tcp_queue_length/ @DataDog/container-integrations @DataDog/agent-integrations /tcp_queue_length/*.md @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation /tcp_queue_length/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation -/tcp_queue_length/assets/logs/ @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend # NDM /cisco_sdwan/ @DataDog/network-device-monitoring @DataDog/agent-integrations @@ -137,7 +111,6 @@ manifest.json @DataDog/documentation @DataDog/agent-integrations /snmp/*.md @DataDog/network-device-monitoring @DataDog/agent-integrations @DataDog/documentation /snmp_*/ @DataDog/network-device-monitoring @DataDog/agent-integrations /snmp_*/*.md @DataDog/network-device-monitoring @DataDog/agent-integrations @DataDog/documentation -/snmp*/assets/logs/ @DataDog/network-device-monitoring @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/ @DataDog/network-device-monitoring @DataDog/agent-integrations /docs/developer/tutorials/snmp/ @DataDog/network-device-monitoring @DataDog/agent-integrations @DataDog/documentation @@ -146,26 +119,21 @@ manifest.json @DataDog/documentation @DataDog/agent-integrations /citrix_hypervisor/ @DataDog/platform-integrations @DataDog/agent-integrations /citrix_hypervisor/manifest.json @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /citrix_hypervisor/*.md @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation -/citrix_hypervisor/assets/logs/ @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /cloudera/ @DataDog/platform-integrations @DataDog/agent-integrations /cloudera/manifest.json @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /cloudera/*.md @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation -/cloudera/assets/logs/ @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /cloud_foundry_api/ @DataDog/platform-integrations @DataDog/agent-integrations /cloud_foundry_api/manifest.json @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /cloud_foundry_api/*.md @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation -/cloud_foundry_api/assets/logs/ @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /esxi/ @DataDog/platform-integrations @DataDog/agent-integrations /esxi/manifest.json @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /esxi/*.md @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /openstack/ @DataDog/platform-integrations @DataDog/agent-integrations /openstack/*.md @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /openstack/manifest.json @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation -/openstack/assets/logs/ @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /openstack_controller/ @DataDog/platform-integrations @DataDog/agent-integrations /openstack_controller/manifest.json @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /openstack_controller/*.md @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation -/openstack_controller/assets/logs/ @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /teleport/ @DataDog/platform-integrations @DataDog/agent-integrations /teleport/manifest.json @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /teleport/*.md @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation @@ -173,33 +141,27 @@ manifest.json @DataDog/documentation @DataDog/agent-integrations /vsphere/ @DataDog/platform-integrations @DataDog/agent-integrations /vsphere/manifest.json @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation /vsphere/*.md @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation -/vsphere/assets/logs/ @DataDog/platform-integrations @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend # System checks /disk/ @DataDog/agent-integrations @DataDog/windows-agent /disk/*.md @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation /disk/manifest.json @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation -/disk/assets/logs/ @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation @DataDog/logs-backend /network/ @DataDog/agent-integrations @DataDog/windows-agent /network/*.md @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation /network/manifest.json @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation -/network/assets/logs/ @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation @DataDog/logs-backend /process/ @DataDog/agent-integrations @DataDog/windows-agent /process/*.md @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation /process/manifest.json @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation -/process/assets/logs/ @DataDog/agent-integrations @DataDog/windows-agent @DataDog/documentation @DataDog/logs-backend # OpenTelemetry /otel/ @DataDog/opentelemetry @DataDog/agent-integrations /otel/*.md @DataDog/opentelemetry @DataDog/agent-integrations @DataDog/documentation /otel/manifest.json @DataDog/opentelemetry @DataDog/agent-integrations @DataDog/documentation -/otel/assets/logs/ @DataDog/opentelemetry @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend # Agent Platform /nvidia_jetson/ @DataDog/agent-platform @DataDog/agent-integrations /nvidia_jetson/*.md @DataDog/agent-platform @DataDog/agent-integrations @DataDog/documentation /nvidia_jetson/manifest.json @DataDog/agent-platform @DataDog/agent-integrations @DataDog/documentation -/nvidia_jetson/assets/logs/ @DataDog/agent-platform @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend # Database monitoring **/base/utils/db/utils.py @DataDog/agent-integrations @DataDog/database-monitoring-agent @@ -211,29 +173,22 @@ datadog_checks_base/tests/**/test_db_statements.py @DataDog/database-monitoring /postgres/ @DataDog/database-monitoring-agent @DataDog/agent-integrations /postgres/*.md @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation /postgres/manifest.json @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation -/postgres/assets/logs/ @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /mysql/ @DataDog/database-monitoring-agent @DataDog/agent-integrations /mysql/*.md @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation /mysql/manifest.json @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation -/mysql/assets/logs/ @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /sqlserver/ @DataDog/database-monitoring-agent @DataDog/agent-integrations /sqlserver/*.md @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation /sqlserver/manifest.json @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation -/sqlserver/assets/logs/ @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /oracle/ @DataDog/database-monitoring-agent @DataDog/agent-integrations /oracle/*.md @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation /oracle/manifest.json @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation -/oracle/assets/logs/ @DataDog/database-monitoring @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /mongo/ @DataDog/agent-integrations @DataDog/database-monitoring-agent /mongo/*.md @DataDog/agent-integrations @DataDog/database-monitoring @DataDog/documentation /mongo/manifest.json @DataDog/agent-integrations @DataDog/database-monitoring @DataDog/documentation -/mongo/assets/logs/ @DataDog/agent-integrations @DataDog/database-monitoring @DataDog/documentation @DataDog/logs-backend # APM Integrations /langchain/ @DataDog/ml-observability @DataDog/agent-integrations @DataDog/documentation -/langchain/assets/logs/ @DataDog/ml-observability @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /openai/ @DataDog/ml-observability @DataDog/agent-integrations @DataDog/documentation -/openai/assets/logs/ @DataDog/ml-observability @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend # Windows agent @@ -242,62 +197,48 @@ datadog_checks_base/datadog_checks/base/checks/windows/ @DataDog/wi /active_directory/ @DataDog/windows-agent @DataDog/agent-integrations /active_directory/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /active_directory/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/active_directory/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /aspdotnet/ @DataDog/windows-agent @DataDog/agent-integrations /aspdotnet/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /aspdotnet/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/aspdotnet/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /dotnetclr/ @DataDog/windows-agent @DataDog/agent-integrations /dotnetclr/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /dotnetclr/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/dotnetclr/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /exchange_server/ @DataDog/windows-agent @DataDog/agent-integrations /exchange_server/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /exchange_server/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/exchange_server/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /hyperv/ @DataDog/windows-agent @DataDog/agent-integrations /hyperv/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /hyperv/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/hyperv/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /iis/ @DataDog/windows-agent @DataDog/agent-integrations /iis/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /iis/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/iis/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /pdh_check/ @DataDog/windows-agent @DataDog/agent-integrations /pdh_check/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /pdh_check/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/pdh_check/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /win32_event_log/ @DataDog/windows-agent @DataDog/agent-integrations /win32_event_log/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /win32_event_log/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/win32_event_log/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /windows_performance_counters/ @DataDog/windows-agent @DataDog/agent-integrations /windows_performance_counters/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /windows_performance_counters/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/windows_performance_counters/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /windows_registry/ @DataDog/windows-agent @DataDog/agent-integrations /windows_registry/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /windows_registry/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/windows_registry/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /windows_service/ @DataDog/windows-agent @DataDog/agent-integrations /windows_service/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /windows_service/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/windows_service/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend /wmi_check/ @DataDog/windows-agent @DataDog/agent-integrations /wmi_check/*.md @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation /wmi_check/manifest.json @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation -/wmi_check/assets/logs/ @DataDog/windows-agent @DataDog/agent-integrations @DataDog/documentation @DataDog/logs-backend # SaaS Integrations /cisco_umbrella_dns/ @DataDog/saas-integrations /cisco_umbrella_dns/*.md @DataDog/saas-integrations @DataDog/documentation /cisco_umbrella_dns/manifest.json @DataDog/saas-integrations @DataDog/documentation -/cisco_umbrella_dns/assets/logs/ @DataDog/saas-integrations @DataDog/documentation @DataDog/logs-backend /cisco_duo/ @DataDog/saas-integrations /cisco_duo/*.md @DataDog/saas-integrations @DataDog/documentation /cisco_duo/manifest.json @DataDog/saas-integrations @DataDog/documentation -/cisco_duo/assets/logs/ @DataDog/saas-integrations @DataDog/documentation @DataDog/logs-backend /ping_one/ @DataDog/saas-integrations /ping_one/*.md @DataDog/saas-integrations @DataDog/documentation @@ -316,3 +257,7 @@ docs/developer/process/integration-release.md @DataDog/a # Dev container /.devcontainer/ @DataDog/agent-integrations @DataDog/container-integrations /.devcontainer/dbm @DataDog/database-monitoring-agent + +# LEAVE THE FOLLOWING LOG OWNERSHIP LAST IN THE FILE +# Make sure logs team is the full owner for all logs related files +**/assets/logs/ @DataDog/logs-backend From 90c7c5eb6fbe937d10add279f3e89563f96efeeb Mon Sep 17 00:00:00 2001 From: Daniel Tafoya <63120739+daniel-taf@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:04:53 -0400 Subject: [PATCH 42/68] Remove use of python from process signatures (#18021) --- ray/manifest.json | 2 +- supervisord/manifest.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/ray/manifest.json b/ray/manifest.json index e6aea1b5bdb6b..e26c5e4529509 100644 --- a/ray/manifest.json +++ b/ray/manifest.json @@ -39,7 +39,7 @@ "metadata_path": "assets/service_checks.json" }, "process_signatures": [ - "python -m ray.util.client.server", + "ray.util.client.server", "gcs_server", "raylet" ], diff --git a/supervisord/manifest.json b/supervisord/manifest.json index 5948f059c2085..5e16d53ec50f0 100644 --- a/supervisord/manifest.json +++ b/supervisord/manifest.json @@ -43,7 +43,6 @@ "metadata_path": "assets/service_checks.json" }, "process_signatures": [ - "python supervisord", "supervisord" ], "source_type_id": 116, From d13b2afec07fba188a521ba0791db5ecfff639f5 Mon Sep 17 00:00:00 2001 From: Steven Yuen Date: Wed, 10 Jul 2024 16:01:14 -0400 Subject: [PATCH 43/68] appset metric fix (#18018) * appset metric fix * changelogs --- argocd/changelog.d/18018.fixed | 1 + argocd/datadog_checks/argocd/metrics.py | 4 ++-- argocd/metadata.csv | 4 ++-- argocd/tests/common.py | 4 +--- 4 files changed, 6 insertions(+), 7 deletions(-) create mode 100644 argocd/changelog.d/18018.fixed diff --git a/argocd/changelog.d/18018.fixed b/argocd/changelog.d/18018.fixed new file mode 100644 index 0000000000000..1b29a2d77443c --- /dev/null +++ b/argocd/changelog.d/18018.fixed @@ -0,0 +1 @@ +Fix collection of 2 appset counters diff --git a/argocd/datadog_checks/argocd/metrics.py b/argocd/datadog_checks/argocd/metrics.py index 108e843337d76..3cda92262faa9 100644 --- a/argocd/datadog_checks/argocd/metrics.py +++ b/argocd/datadog_checks/argocd/metrics.py @@ -64,9 +64,9 @@ APPSET_CONTROLLER = { 'controller_runtime_active_workers': 'active.workers', 'controller_runtime_max_concurrent_reconciles': 'max.concurrent.reconciles', - 'controller_runtime_reconcile_errors_total': 'reconcile.errors.total', + 'controller_runtime_reconcile_errors': 'reconcile.errors', 'controller_runtime_reconcile_time_seconds': 'reconcile.time_seconds', - 'controller_runtime_reconcile_total': 'runtime.reconcile.total', + 'controller_runtime_reconcile': 'runtime.reconcile', } API_SERVER = { diff --git a/argocd/metadata.csv b/argocd/metadata.csv index 8a5a1c3703d6f..126a9872634d1 100644 --- a/argocd/metadata.csv +++ b/argocd/metadata.csv @@ -143,11 +143,11 @@ argocd.appset_controller.process.resident_memory.bytes,gauge,,byte,,The resident argocd.appset_controller.process.start_time.seconds,gauge,,second,,The start time of the process since unix epoch in seconds in the ApplicationSet controller,0,argocd,appset_controller process start_time seconds, argocd.appset_controller.process.virtual_memory.bytes,gauge,,byte,,The virtual memory size in bytes in the ApplicationSet controller,0,argocd,appset_controller process virtual_memory bytes, argocd.appset_controller.process.virtual_memory.max_bytes,gauge,,byte,,The maximum amount of virtual memory available in bytes in the ApplicationSet controller,0,argocd,appset_controller process virtual_memory max_byte, -argocd.appset_controller.reconcile.errors.total,gauge,,,,Total number of reconciliation errors per controller,0,argocd,appset_controller runtime reconcile errors count, +argocd.appset_controller.reconcile.errors.count,count,,,,The count of reconciliation errors per controller,0,argocd,appset_controller runtime reconcile errors count, argocd.appset_controller.reconcile.time_seconds.bucket,count,,,,The histogram bucket for length of time per reconciliation per controller,0,argocd,appset_controller runtime reconcile buckets, argocd.appset_controller.reconcile.time_seconds.count,count,,,,The count aggregation of length of time per reconciliation per controller,0,argocd,appset_controller runtime reconcile count, argocd.appset_controller.reconcile.time_seconds.sum,count,,,,The sum aggregation of length of time per reconciliation per controller,0,argocd,appset_controller runtime reconcile sum, -argocd.appset_controller.runtime.reconcile.total,count,,,,Total number of reconciliations per controller,0,argocd,appset_controller runtime total reconcile count, +argocd.appset_controller.runtime.reconcile.count,count,,,,The count of reconciliations per controller,0,argocd,appset_controller runtime total reconcile count, argocd.notifications_controller.go.gc.duration.seconds.count,count,,second,,The summary count of garbage collection cycles in the API Server,0,argocd,notifications_controller go gc duration seconds count, argocd.notifications_controller.go.gc.duration.seconds.quantile,gauge,,second,,A summary of the pause duration of garbage collection cycles in the API Server,0,argocd,notifications_controller go gc duration seconds, argocd.notifications_controller.go.gc.duration.seconds.sum,count,,second,,The sum of the pause duration of garbage collection cycles in the API Server,0,argocd,notifications_controller go gc duration seconds sum, diff --git a/argocd/tests/common.py b/argocd/tests/common.py index b4e2ad8504f76..7bbf92a7bd005 100644 --- a/argocd/tests/common.py +++ b/argocd/tests/common.py @@ -108,7 +108,7 @@ 'redis.request.duration.sum', ] -appset_controller_counters = ['reconcile.errors.total', 'runtime.reconcile.total'] +appset_controller_counters = ['reconcile.errors.count', 'runtime.reconcile.count'] appset_controller_gauges = [ 'active.workers', @@ -163,8 +163,6 @@ 'argocd.app_controller.cluster.api.resources', 'argocd.app_controller.cluster.cache.age.seconds', 'argocd.app_controller.redis.request.duration', - 'argocd.appset_controller.reconcile.errors.total', - 'argocd.appset_controller.runtime.reconcile.total', ] # Additional metrics that aren't exposed in the E2E environment From a7d78ff5e3591f84ec6946f74e9a17e2f37544e8 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Thu, 11 Jul 2024 14:01:49 +0200 Subject: [PATCH 44/68] Release base check (#18025) * [Release] Bumped datadog_checks_base version to 36.10.0 * [Release] Update metadata --- .in-toto/tag.b9ca7eb3.link | 2 +- datadog_checks_base/CHANGELOG.md | 6 ++++++ datadog_checks_base/changelog.d/17735.added | 1 - datadog_checks_base/datadog_checks/base/__about__.py | 2 +- requirements-agent-release.txt | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 datadog_checks_base/changelog.d/17735.added diff --git a/.in-toto/tag.b9ca7eb3.link b/.in-toto/tag.b9ca7eb3.link index ea6f7ea4fd15c..b483477f9dfee 100644 --- a/.in-toto/tag.b9ca7eb3.link +++ b/.in-toto/tag.b9ca7eb3.link @@ -1 +1 @@ -{"signatures":[{"keyid":"b9ca7eb3a90f78a8d30ef9bbd529fe2c80aa7129","other_headers":"04000108001d162104b9ca7eb3a90f78a8d30ef9bbd529fe2c80aa71290502668d1e1c","signature":"9d7a7c21666f3616c9e950962de44f0792a0e14b4165fcc8bd1b5c88e70f66990e55f733ca5f97dd4d5caf1f7238504df6c78063f2f24ea58abd651621a023605807ee0fba9d8b3f9ba49f70a26dd0c16642649fc247af5c432f33129aef57e78378a2b86f74916f00d689b2d7a94ea216c8879f34aa94c669e33797433ba32cbd9de1b0828e171f5b88f3415ea2c30d5e6cb1fcec3476f01ae0a7cf215a3c088ce1fc948f1d3266816fcaa9902b4dc4f37ecd6828d148d8bc5d2b8e1eb5f51dac08ad6ecb254444eae15f19ac4935a01afb50dd88531b6f940714da078397bd43047d9c17d28d7f6f9ff9a9cbda144a74b787266a8d547e4a64f33f34433aecc4f75f3bf296a56ba61f0ddff6300d6042cc7ab7e02122d7b9f98aa40f3f68d2820b09a981e7a89748e88983532474d15ba3de9299053a1c91db74d85f502b55aa669581c098c01a0e5cb61ed34bfdeb52be5b7afaffbf509a49a8e504fd4c9b04eb6ae29f7c038bf57d940f48bc907484de0fa210dc5a0c8b4f5e75fc8e1696420dac2178b08991459076cea46023f1bf8054dbb28c9996486abd560d76fe46f9bfa46eeb33f2417da83052aae3f5bce0d378f42e5cc61e9d8f8cb4dca0e7025ed7181132b4b754a111832690b9175870fa7a77df7e35231359e8487cf132efb0f331a56ca2ad4b26232778ecc643313a9a165b9f76c999011ec311b9fad911"}],"signed":{"_type":"link","byproducts":{},"command":[],"environment":{},"materials":{},"name":"tag","products":{"kyverno/datadog_checks/__init__.py":{"sha256":"0f813aa7ba00e61daaefebdf16112adcf5fe306067e54269ae2682923d1da235"},"kyverno/datadog_checks/kyverno/__about__.py":{"sha256":"50cefdc5b2b79bb120a74d06e094d02ba89ea26cbbb489f84d7b901dbcb8d16b"},"kyverno/datadog_checks/kyverno/__init__.py":{"sha256":"f32dbf057be734da7708475a1589d541ad0397c991724ea80c1f6abb759fab5e"},"kyverno/datadog_checks/kyverno/check.py":{"sha256":"0ce69a0fd28acb2874bf7a1debbd5c8fbb4457b51bdda170075d1b641de1583f"},"kyverno/datadog_checks/kyverno/config_models/__init__.py":{"sha256":"34156fd46c47f45e20546d102f352888c153d8fc3746cf28d3e661dda48e7679"},"kyverno/datadog_checks/kyverno/config_models/defaults.py":{"sha256":"126c019d30c8331d9ed96e711c4d4b09ecd14b343a180d3c2480dc0ca8d296cc"},"kyverno/datadog_checks/kyverno/config_models/instance.py":{"sha256":"679027393e71fe189c1abdfb546d2012e20173aa8b67c5510959bf2505e4a4ac"},"kyverno/datadog_checks/kyverno/config_models/shared.py":{"sha256":"9d8db9bc2a34c650d838e5698df45d5fab57ec70f0ff1161f9a9bcf965b94e4e"},"kyverno/datadog_checks/kyverno/config_models/validators.py":{"sha256":"c0a28c6d36da1cf04169bff080476f6f12e3f97064abd4247cb4126adef16b97"},"kyverno/datadog_checks/kyverno/data/conf.yaml.example":{"sha256":"6d64756ff6d6a05d9e9e053dccbc795eb5bf66e5164ee1ad29d20c338a02acf5"},"kyverno/datadog_checks/kyverno/metrics.py":{"sha256":"8ce063ed491567216130313ed22c0c5ca92c19205b9043ec5230f089b2830dbe"},"kyverno/pyproject.toml":{"sha256":"962de3b8052e01c520b3a681a30af1715f2f91b5502587c5c7c5a7277e3fa563"}}}} \ No newline at end of file +{"signatures":[{"keyid":"b9ca7eb3a90f78a8d30ef9bbd529fe2c80aa7129","other_headers":"04000108001d162104b9ca7eb3a90f78a8d30ef9bbd529fe2c80aa71290502668f816e","signature":"2292f79653a52df5ba6fc55e7147ccd5448affc2c65192489f8b2bf26b09f8dcf0914ea1e112f3dc63bd27dad429761ca7b11b09c809e06a5c9488e203b8b1155604765996522b30a056e32bae63053be760e1dd4249f38b8ea9271e1328bac2cbab17668c6b9d727b82369e23a990cdb4ba1d58b1a82d55a3f1cf20265b2e655fbe52f84fb7dfa8db4d11fd7775ec92e4bbc695907d455fe6c247cc24a867cba680bcea37844183e39ce2a5169b59945b665c8f1fbf11439c5c958f95101fd4307549a72e49f5d251baabd81ab6e0e5daf80fb023504bbe139a0230ea7c6b0b5eaf8d12b20accc1769d94b9011b747a3182aeafe374f10aa257ccc8ed4f82ddffeef60ea3d8c2950281653a0b0507c19f0b937e208d953bc7a7e9f62e33435f9240a9997381c71ae0f784fb3c9276c4c6bdd8fc51ad4d40b70d5ddf27b485162cb2c56b0a26390cc6b2b84005f645f350c4fec65da106fb3c23e276d237650380fd05e0f94478a4ebbea0276604ab67b97a59bff8791beb71b7a1d799506434f436ef3305549963a5390ca2107b08ea442ed351914431af170c8aa5884c4df6c40d8bc0d4838ded2732edbb6a609f39a74cc2bf9270179f5c74ea01309aff52a484758c4b2cfa5a1503f53c52e15c187ebd7325ee6ea01b948e40acd775481b543a4843c18ccce7922e8ebf2b0a43ce50159d0747291f1e6390d1ff2f874d3e"}],"signed":{"_type":"link","byproducts":{},"command":[],"environment":{},"materials":{},"name":"tag","products":{"datadog_checks_base/datadog_checks/__init__.py":{"sha256":"9a3c64b8b00c94da4b4f34618d803d3255808caf21b8afa9195c84b61da66b6a"},"datadog_checks_base/datadog_checks/base/__about__.py":{"sha256":"6ed71d8fb43841ab5469e60114ceff9d4eda8a26ee2e68af7a8acb573baa0b35"},"datadog_checks_base/datadog_checks/base/__init__.py":{"sha256":"0942da73cf6bf391501af55ba961211e917d1bd041260867c1db2078ac0735c0"},"datadog_checks_base/datadog_checks/base/agent.py":{"sha256":"9d7f71fc16188b344a18d61f5eae73ed2d0567dc5c5ffc1ddadbb1a467b7ffc9"},"datadog_checks_base/datadog_checks/base/checks/__init__.py":{"sha256":"6b45aff8e774058500e39cf7ede54ebee81f95364c8a380648eb89aa7744dc35"},"datadog_checks_base/datadog_checks/base/checks/base.py":{"sha256":"0e3d9328ad59d7b3635d0a3423f8544702a8a06a94cfc1192ff49658ddd28f89"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/__init__.py":{"sha256":"ac4335c2a324c7c24bbc9a5834730ecba39d3e60b0438e8948e7c4dd00c0a726"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/base_check.py":{"sha256":"d8b21153a6b67096f86f2338437bf54955498d05bc363549affc9428e7e32a35"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/mixins.py":{"sha256":"611acba9c969866f4feca52ad89b05757da1ab60393fdd2211f078da95b61400"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/record.py":{"sha256":"6aa334545b055aeda90343b976cfbabf959038cee58103321b0a26e90eaa09a5"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/base.py":{"sha256":"97ec3af5e262a9f1a3dcc0664f01cca4df95241771c4bf53d09fa06b4a8fbc23"},"datadog_checks_base/datadog_checks/base/checks/libs/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/libs/prometheus.py":{"sha256":"bc26fc613d37025a1efca477ac60960ad0499d0b73180c0c5bc4045bc62f2630"},"datadog_checks_base/datadog_checks/base/checks/libs/thread_pool.py":{"sha256":"0005e02999a4f6c172768f3f0d26fb064abb06d639b0d5081839b6f0d5a1a4c2"},"datadog_checks_base/datadog_checks/base/checks/libs/timer.py":{"sha256":"8ac17c602136ed7a5e7a1bb39389782190afc505574dd6cd8a46c1db146780c4"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/all_metrics.py":{"sha256":"4f89b8c40a8abc0f57b6abbea2227be3cd8a0a000e34a134b48800fc4a0842c6"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/basic_metrics.py":{"sha256":"37d804c9398bb121d2f89162729347394ab2b3b627ad1affb8f608eb34ab35bb"},"datadog_checks_base/datadog_checks/base/checks/network.py":{"sha256":"5228cfd4e5410a908d28ccba6d590d6b31e0cba49d9bca82bc26063da5ae4c3a"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/__init__.py":{"sha256":"3876cda6f0d3eb38d15b8d91cd85991f383e692f2a5d83984292aea2e9942771"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/base_check.py":{"sha256":"6e5867daf9717220a004bc9b2910c30701c9f75a2a2b6ab56f4f1f21886a7891"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/mixins.py":{"sha256":"87ec296b602d1a77c6ba2221bab39189764a9bcc30657401f962169782250777"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/__init__.py":{"sha256":"3fcd4506124b03d306a73e0bee8ffb0bea6f13077803ff235855906758e0d048"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/base.py":{"sha256":"f64ade8cfe355071e56c86180d000b052976896467b929433fb86bcddf801f3e"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/first_scrape_handler.py":{"sha256":"227fad65733389e49d2f6397265200162efc29b415c2e26718fd2268b1fdf7be"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/labels.py":{"sha256":"d05d084a1d37c12daf56c8db9ecdc5ad80e7ea0bf18f45effb67e40361e1f43f"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper.py":{"sha256":"7783dc24cfdbef09075014396ff219a3f556ff4ee3423fe0c1381f0eb929d410"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transform.py":{"sha256":"eb81688905d875914fbb6c9b246a1dc9812068b0e05a9944dd89cb949b035290"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/__init__.py":{"sha256":"84f667f162ef41faf32d2689c6d15b61802d2b576df084174942cbefdb2b663b"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/counter.py":{"sha256":"2379338f226523eb31d573fae682ba50089355d7557c40422b4cd75620708169"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/counter_gauge.py":{"sha256":"a1bd42bc2747afe56b73905295a4f73972f917633a07b3866a15007a4545dc5c"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/gauge.py":{"sha256":"ff6a19d789bfe7f6fb94e47eb4cc49461b1e17aafa7fd0ec3bee0b6c023288f1"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/histogram.py":{"sha256":"872b69c3785029d57037ccb991e5ba58672adebe3efb11272431f1c167fa8e52"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/metadata.py":{"sha256":"069b093750fd272f78bb12deee4a472f5e042dd961530c939a5e51f3d3003aea"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/rate.py":{"sha256":"7beb75edc142b002a77d7810add521f79c3496c972de2b80d36322cc63ffa1c3"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/service_check.py":{"sha256":"e0244e3b8da63d241c593dfbe9b4c722fb0e68b0db2ce9883e197ce1c58501b5"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/summary.py":{"sha256":"d01d5693b79ae07da77ddb0e5fca10122a2804636aca914372304f2a31d5b52e"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/temporal_percent.py":{"sha256":"c02a8ea971a8550de5c99066fc04e7830a6f21d81c7ce905ff59461397e88625"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/time_elapsed.py":{"sha256":"c8fb3bd9478e82bd9e40e7610638c507a7add21327c034beaee516388f160db1"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/utils.py":{"sha256":"b6993786d240cff2b0091a85b360938da8c790b0acff64db19d069e75e2b58e4"},"datadog_checks_base/datadog_checks/base/checks/prometheus/__init__.py":{"sha256":"35c57ac8d1d9555c42ac0ac80ece6d4a459fae72f05398b195374d5c57284a30"},"datadog_checks_base/datadog_checks/base/checks/prometheus/base_check.py":{"sha256":"2d4b347b12235a4d520d0901a7191e534fa0888d68cb32e21936898ccd8b8f5d"},"datadog_checks_base/datadog_checks/base/checks/prometheus/mixins.py":{"sha256":"7cd64989b4ea2cba4925c4657677edfad6243554925184431282192411220d4b"},"datadog_checks_base/datadog_checks/base/checks/prometheus/prometheus_base.py":{"sha256":"9f35823bf488a24646a04ee8f01269a254cfa160bbfe471625f90b1c05de057e"},"datadog_checks_base/datadog_checks/base/checks/win/__init__.py":{"sha256":"9083ff7fefc6d7404110ec4ee3e1a7cb29730a8d6439ff5deb291388151a7a4a"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh.py":{"sha256":"142f282601923e049811ccdc3de3b89b7e21cbaf48f08e487c34cfea1865e839"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh_base.py":{"sha256":"72f82d18dfbc3bbffe8ca331d92877919630be4c7f708c1573b1b8b28c404cfd"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh_stub.py":{"sha256":"3397f2064cc0b842afa19ac6f64b506a9c241ffecaf8a388605e55a52f372cc9"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/__init__.py":{"sha256":"6f4f143f3ef047e807872bc2396f83a4fab9c96406d846e1a12248e43f144f37"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/counter_type.py":{"sha256":"efbef65c6b56c8f2577b0caf698ca8c15983cbd0f1678da48bd583e5769bb951"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/sampler.py":{"sha256":"789382e2bc921a9ba22a14766785b9d3f8d375f7773d0c36de5ad33ebc14ae19"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/types.py":{"sha256":"e04f1ed72a69d8ff9e3b180bb11adfb656aeaaf6a9582b956803e872a0abc158"},"datadog_checks_base/datadog_checks/base/checks/windows/__init__.py":{"sha256":"b2e1a32eb8591a9d541a935aa5c56f20fa7ebbc3de68cf24df3a650198f2712a"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/__init__.py":{"sha256":"c4ced6dabda1b7e2b1fe3d22f03bae7bf94433606ffdbab7be0d04b34009e4a1"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/base.py":{"sha256":"bb9c0f99fb2a348fa420a6dd4e74b0f9722a26dc60604d440cd5b8f71c640770"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/connection.py":{"sha256":"124462f2699e89a71bb2ead225be6f014cc523f94091459c9d20bb4ce42c006e"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/constants.py":{"sha256":"fdaa806dab5cbbd790bfd36a6d509a43d7394be1e4922504455e68a82dc39799"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/counter.py":{"sha256":"8498fbe90224b5934558588a21110d2224c4d0d6334e5bd52dac213c2566f49e"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transform.py":{"sha256":"6d93f17ed0f0d1dd55157e3dca21486be9da18e62529c320a6fb9e491920133f"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/__init__.py":{"sha256":"a8b142ebeee6817e16846d57125966018eac45ef4a9870efba31fbc9c2555e92"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/count.py":{"sha256":"8263467bddb648fe101243270ff9dcf30edba0a616fa65b69f9fbabe975c9a37"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/gauge.py":{"sha256":"73be1f652e85addc433ba64aa2fa75ee1daf85322691a351d8e2deb35af4d681"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/monotonic_count.py":{"sha256":"479c167c31bd2e471baab21d49ce9dce3470b40729dabe153ee5456aa3a5ce2d"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/rate.py":{"sha256":"3e4c739755cf6cfb68fb942b882a23361e5684c4e3c03710c2a63f8b6310052f"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/service_check.py":{"sha256":"c2f74b0d2b871ca2276f35bcb8cf10f764dc454b90975d70b2fb7475266dac70"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/temporal_percent.py":{"sha256":"2071f661338679e8b63d53790a1f7df200ea620facd4939bbfd6b44e602f3a75"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/time_elapsed.py":{"sha256":"85633c087612a859c562b35daf5345638eb89cc01514e88df238658594ce6fbf"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/utils.py":{"sha256":"a2ffb8f0936f650e8a3c4671cfa5f42187009776d50059ccd79faf9467eab18d"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/utils_win32pdh_fix.py":{"sha256":"9d64eb01b07d5400ff0da693ad2055d8a0e606f8a9185988d38fb00df9f151af"},"datadog_checks_base/datadog_checks/base/config.py":{"sha256":"a9c000e17f6c5d065177041ef0382219ddbdf34541a7549003477af79b57fed5"},"datadog_checks_base/datadog_checks/base/constants.py":{"sha256":"711d7db40a95cac3056dd056a88199a0720a9359064f2a91b029fd15f1503a7c"},"datadog_checks_base/datadog_checks/base/ddyaml.py":{"sha256":"d86ce592be606c30e1844e7f230e716dd894cd6839b3a70dfa826a7abb92c6ca"},"datadog_checks_base/datadog_checks/base/errors.py":{"sha256":"7cf705691df31e94a4328f1ea6f1779517bd2ab1274bc83827475733f9efcecc"},"datadog_checks_base/datadog_checks/base/log.py":{"sha256":"bba63cedd99be5b471b7bf5d34f5115e0dc7e114e121d75e760655823b46be58"},"datadog_checks_base/datadog_checks/base/stubs/__init__.py":{"sha256":"c2958047dbfb0624db6e64ceea9569b21a9aff3f8f59a613af7df049364bcf77"},"datadog_checks_base/datadog_checks/base/stubs/_util.py":{"sha256":"6431ad41af05ddc1dff3e42f4951cc0780462370bd5600bbb067061af3b46a92"},"datadog_checks_base/datadog_checks/base/stubs/aggregator.py":{"sha256":"c215913b4b31fb5d861b50bdc4060efd9c5a6e8f2b4aea9e240cec4637d7e609"},"datadog_checks_base/datadog_checks/base/stubs/common.py":{"sha256":"646cc5d9d5f2d6e545406746fdbbf3fe930c8942da05ca73adafe4f70a3d7f4e"},"datadog_checks_base/datadog_checks/base/stubs/datadog_agent.py":{"sha256":"91192bd03dd0a0cca5dcf2a8c76584749869a6359d0f50bc0aaa9093bd883644"},"datadog_checks_base/datadog_checks/base/stubs/log.py":{"sha256":"03e7969f3639813a535b8d59721f96e4255c97395d96684c4d6faf0cd15d4f5a"},"datadog_checks_base/datadog_checks/base/stubs/similar.py":{"sha256":"cd9d5bab9c0f690fbc70163f1d2fbad76b29151dd4277bf214069756c19c7013"},"datadog_checks_base/datadog_checks/base/stubs/tagging.py":{"sha256":"cf12dd3c2e04a87c46892fc71216da3ac2ffb399d922137c043931d810133aab"},"datadog_checks_base/datadog_checks/base/types.py":{"sha256":"6a76a3652d16d13b31507250c3e24738fd8d49eb82f418ac5d2cbd9804ad9714"},"datadog_checks_base/datadog_checks/base/utils/__init__.py":{"sha256":"4c2d2aee209b36a7188df5396b304da429e2f0b01060e7d8e8500313749910f0"},"datadog_checks_base/datadog_checks/base/utils/agent/__init__.py":{"sha256":"a37696bf2dcf872903fe1ed84f7b3adbc3b45b66291e2b3436542c495d4f234e"},"datadog_checks_base/datadog_checks/base/utils/agent/common.py":{"sha256":"d5746c3c959da666f100a2815471813d49b858776f8aad28bee820b69c7b2d6a"},"datadog_checks_base/datadog_checks/base/utils/agent/debug.py":{"sha256":"cde05b34bb7763f5b1a5ff4e74092595d2f2d6098bd14e9b30398e1d20c63373"},"datadog_checks_base/datadog_checks/base/utils/agent/memory.py":{"sha256":"986d743c51608d608b7ad17a8a10b8eb7550cf55774b849332cfc5f1b00392f6"},"datadog_checks_base/datadog_checks/base/utils/agent/packages.py":{"sha256":"ab88bbece8f9d0a38db114f121b3aa7babf43239debbe4069dd236cfc742d8f9"},"datadog_checks_base/datadog_checks/base/utils/agent/utils.py":{"sha256":"155fe8eab71c53907432b5f299afb8c80aa62a08649734de39fd6785872663ba"},"datadog_checks_base/datadog_checks/base/utils/aws.py":{"sha256":"c3114b5a5545b6fe7f11445db17cc384e45c4e93348c1940a2470c88f575c43f"},"datadog_checks_base/datadog_checks/base/utils/common.py":{"sha256":"b5b95066f10424b78e418babf395ebb80151fd09ab8bdcc0522fe08b43711e0d"},"datadog_checks_base/datadog_checks/base/utils/concurrency/__init__.py":{"sha256":"391b2c1396d766e62e6b95022deb067cfbdcad029c0031da0ec5eb5327c0445d"},"datadog_checks_base/datadog_checks/base/utils/concurrency/limiter.py":{"sha256":"8acd99a541237ec2389c11ad5c6d83d1982fd060f7f3f8b98c940291dccf5bf6"},"datadog_checks_base/datadog_checks/base/utils/constants.py":{"sha256":"4304decb8096074340c66dab703fb03d84641328257a4408ac0cc531a6c46b7f"},"datadog_checks_base/datadog_checks/base/utils/containers.py":{"sha256":"8227d931334393baecb8dcde9132740b832dcb5b26b07f847f6a9b8ebc60b24b"},"datadog_checks_base/datadog_checks/base/utils/date.py":{"sha256":"2499aa3fce0281570527472f02632ef04b4ceaff7ab48112b9c40d9bd78a7847"},"datadog_checks_base/datadog_checks/base/utils/db/__init__.py":{"sha256":"f964bc85274b6a1cf6a9b115c13d38d419f422ef40f4e96ec3a0b8ff36f17e36"},"datadog_checks_base/datadog_checks/base/utils/db/core.py":{"sha256":"b151dd639674771e9433a21667007bd07c62583213344dba4637dfc0b2acf490"},"datadog_checks_base/datadog_checks/base/utils/db/query.py":{"sha256":"001fd3d9274eaba66170d210627d928eddc4391f1f97df3e229a5b2e5200d0a5"},"datadog_checks_base/datadog_checks/base/utils/db/sql.py":{"sha256":"a0f94966a841cf408601aecc10d3dba4e83e39fb878feddbffeaefec981a344b"},"datadog_checks_base/datadog_checks/base/utils/db/sql_commenter.py":{"sha256":"aff79f2ba4c6450c4cffe423fa774425d102938ec9e270858e4572c6ed579af5"},"datadog_checks_base/datadog_checks/base/utils/db/statement_metrics.py":{"sha256":"4b49073e816a099b514d9a1323a3e2f99ba5e88b9ef18de3d7f92c347fb3128f"},"datadog_checks_base/datadog_checks/base/utils/db/timed_cache.py":{"sha256":"6bd2ace4a294bc4c41e863804d74d208b6a656d2c3f75f439fa1e9c1e18ab45c"},"datadog_checks_base/datadog_checks/base/utils/db/transform.py":{"sha256":"15a7533cee2c3dbac0e6838df549ec65064b9c77065677a575f89fcd89cf97d8"},"datadog_checks_base/datadog_checks/base/utils/db/types.py":{"sha256":"38b5f63aae7c2503c5043e28a94a422e400fee8bd118dfe2d6f164d44d0df0b8"},"datadog_checks_base/datadog_checks/base/utils/db/utils.py":{"sha256":"7d1160b13dbbe3323a3bd42b471d05ecfbecc83d4cc0648f03cf8b0054561f7e"},"datadog_checks_base/datadog_checks/base/utils/diagnose.py":{"sha256":"78b31ed2d212a64cd2df2c5547cdc81f1a2b4097c74ff5e2e82ab8cf344dc552"},"datadog_checks_base/datadog_checks/base/utils/discovery/__init__.py":{"sha256":"7c896046fefe58933a21fa392211462b829c0caac24865ff7eb5e0899f73e8c9"},"datadog_checks_base/datadog_checks/base/utils/discovery/cache.py":{"sha256":"7fd2f703b619a59fa6a59a452308ec6b969bf5c64c1a4a9d7ad76bf44a5a95b2"},"datadog_checks_base/datadog_checks/base/utils/discovery/discovery.py":{"sha256":"9bcc3d55162eefc79dd202af56ee1c84dad1752302aae24edd85359b378e734d"},"datadog_checks_base/datadog_checks/base/utils/discovery/filter.py":{"sha256":"459f13ddb2cfe2e84af0a5f01aa76860c254f4edc402f3924e119ae702d0311f"},"datadog_checks_base/datadog_checks/base/utils/functions.py":{"sha256":"8869726f147a68f3c494dc4d6f610b3b36e4df6f23f4e541031ade749c5d091c"},"datadog_checks_base/datadog_checks/base/utils/headers.py":{"sha256":"2f23e5e9cc119258e1fe0b7772f282a081f7593a8a09bc733ea84644c28e699a"},"datadog_checks_base/datadog_checks/base/utils/http.py":{"sha256":"00a9ccf032ae7e61ece135a9adcf9654ad755cceb82b302a96a6c3fd81970b56"},"datadog_checks_base/datadog_checks/base/utils/limiter.py":{"sha256":"6114eb3c25f54b912d1cb55c3fff8611fcd1a2db3f2d3732d5ffee1d956cf748"},"datadog_checks_base/datadog_checks/base/utils/metadata/__init__.py":{"sha256":"6d36a6f7a190f43be4ea287c70aabc5b16b69640e48feed3b89de85875d432cb"},"datadog_checks_base/datadog_checks/base/utils/metadata/constants.py":{"sha256":"5c77cfc2f40c6f2344d8562607fed7c968862343761b17415dbb572f87839e27"},"datadog_checks_base/datadog_checks/base/utils/metadata/core.py":{"sha256":"64e5a3e1bca0d96533d7e092adff752c8ec2ad2349dcc87a510c10dd0ff03d7d"},"datadog_checks_base/datadog_checks/base/utils/metadata/utils.py":{"sha256":"4c2876f1c9b1434dcc413b9e3af4274f5ad0b604c7dadf30fde8e90901dcaa9e"},"datadog_checks_base/datadog_checks/base/utils/metadata/version.py":{"sha256":"7257bc2c7c2a72ee364ea14a24625d16d1c098e7a2b423a2ce34cd43606cc534"},"datadog_checks_base/datadog_checks/base/utils/models/__init__.py":{"sha256":"b2e1a32eb8591a9d541a935aa5c56f20fa7ebbc3de68cf24df3a650198f2712a"},"datadog_checks_base/datadog_checks/base/utils/models/types.py":{"sha256":"c9b504a7dcffac396bdbea089158c4581fa6440bd4c28103a4051c6504c4208c"},"datadog_checks_base/datadog_checks/base/utils/models/validation/__init__.py":{"sha256":"699557dfc5b5a642c793b9281e02b9267d8f3824f940a28f1b35bfc3d2e082da"},"datadog_checks_base/datadog_checks/base/utils/models/validation/core.py":{"sha256":"dab25d1f87af4729ec0530dc0b04ed788c0c09906f9e674113a736f2c8c3e5a0"},"datadog_checks_base/datadog_checks/base/utils/models/validation/utils.py":{"sha256":"748ad183c8795ee93e403b08c89285f68b6a45fc34aeeebd1f67c548dcc8b0e8"},"datadog_checks_base/datadog_checks/base/utils/network.py":{"sha256":"970452f4248a9699bed1d5be713e7b2b65fe6f026f4bcbf6afa4fb4ad2bfd6c7"},"datadog_checks_base/datadog_checks/base/utils/platform.py":{"sha256":"c16f1fe972a8e091f1beed6c3740e92c39988d2fdc0aef06a0abdf4e3223e323"},"datadog_checks_base/datadog_checks/base/utils/prometheus/__init__.py":{"sha256":"f794783ecff74f6713b846470f28eaaa841ed20c0d1681bcd18186135e2c150f"},"datadog_checks_base/datadog_checks/base/utils/prometheus/functions.py":{"sha256":"c674f283d8937acffcde65a57351acf05150d6349163e94b3e8e530801626f2b"},"datadog_checks_base/datadog_checks/base/utils/prometheus/metrics_pb2.py":{"sha256":"eab96d57e2144ab9d603d62b031c0c1a198afb41ea22fe11f1b60b0596d65fdf"},"datadog_checks_base/datadog_checks/base/utils/replay/__init__.py":{"sha256":"391b2c1396d766e62e6b95022deb067cfbdcad029c0031da0ec5eb5327c0445d"},"datadog_checks_base/datadog_checks/base/utils/replay/constants.py":{"sha256":"7b10c6b0380b23bbb5196bde7a55dd8335894e3c47a18266413ee8ef0d4509e3"},"datadog_checks_base/datadog_checks/base/utils/replay/execute.py":{"sha256":"048756ff9bafef97f21c68bcd6fe20256091059de549cc1af90ff8c36f2cb21b"},"datadog_checks_base/datadog_checks/base/utils/replay/redirect.py":{"sha256":"f21e13c07ed95637a211ddaacb1f4a68752755137bfcd1a6535745890c252697"},"datadog_checks_base/datadog_checks/base/utils/secrets.py":{"sha256":"4e3e4c04ea321975c3581dc7afeed4283cb9195d4d6499053d8e13e2ff4f1c78"},"datadog_checks_base/datadog_checks/base/utils/serialization.py":{"sha256":"7ec78259573604c7c1ac299199cad1f34fa129f19a4f3f605c8a87624426b2da"},"datadog_checks_base/datadog_checks/base/utils/subprocess_output.py":{"sha256":"58dc33d63b9c6e2193b43a0dc735c34ad2a080c82aa657f67959b1b06259b020"},"datadog_checks_base/datadog_checks/base/utils/tagging.py":{"sha256":"004504188c498cdbe8388110405922b7c653d8ec91c62ca6d45cc21227080acb"},"datadog_checks_base/datadog_checks/base/utils/tailfile.py":{"sha256":"c7fa4ce6982655a5b87890704ba19764a3aa89fa66a9faf01ce537816b6162d3"},"datadog_checks_base/datadog_checks/base/utils/time.py":{"sha256":"9caeb78a0273d313748990aea3dd09a6ca47119cc52671bcca42428186a9a41c"},"datadog_checks_base/datadog_checks/base/utils/timeout.py":{"sha256":"78e059a1f14dfa13aee7125e30e17769cfe87dccbd118ebe92f981bcfe101058"},"datadog_checks_base/datadog_checks/base/utils/tls.py":{"sha256":"84625ba574e57cf11bdc7845783c96fb8409b78fff535e3a99cf7bc1823e4e82"},"datadog_checks_base/datadog_checks/base/utils/tracing.py":{"sha256":"1a38b277fa0ca6fd8566969accf31129c0565a9fe2a1eaf9e64b6b76810da316"},"datadog_checks_base/datadog_checks/base/utils/tracking.py":{"sha256":"158228baabb7281f89b31831335897e48a6ffdc5a1b3ccd03933784b15ce909e"},"datadog_checks_base/datadog_checks/checks/__init__.py":{"sha256":"76381faa72acfce6863031501a53b955d2d047150023e5f828424b2e53e95483"},"datadog_checks_base/datadog_checks/checks/base.py":{"sha256":"df061b86e80d0375a5aedffe104a4198949297c9472ae52dad13fe9d5d8a05f4"},"datadog_checks_base/datadog_checks/checks/libs/__init__.py":{"sha256":"2300c3103843a8f3d4d63e0fcaf78691dbb508cbfd91b7de2bdd0802f981c777"},"datadog_checks_base/datadog_checks/checks/libs/thread_pool.py":{"sha256":"747147080f5d03c2742e233e4bd635d4c58abff8cf5c803fe5881f776c1603b4"},"datadog_checks_base/datadog_checks/checks/libs/timer.py":{"sha256":"a35b1970916e9035ae71d185b6506bbd2b798e26ef1b7b91fc3b30788b19dd49"},"datadog_checks_base/datadog_checks/checks/libs/vmware/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/checks/libs/vmware/all_metrics.py":{"sha256":"849ca20bfd3b86aa8c8eeb88732b4026fd8a0e74a0a96ab6cbe269270b71a8c3"},"datadog_checks_base/datadog_checks/checks/libs/vmware/basic_metrics.py":{"sha256":"683af414d39b8d77d66fd97146999de4bd7a7be9ab934ed9224867a0b74c099f"},"datadog_checks_base/datadog_checks/checks/libs/wmi/__init__.py":{"sha256":"2300c3103843a8f3d4d63e0fcaf78691dbb508cbfd91b7de2bdd0802f981c777"},"datadog_checks_base/datadog_checks/checks/libs/wmi/sampler.py":{"sha256":"55310a8bffb4b55af9552268e627c83c284db55c99c47f754fa05e5bb33ccd3b"},"datadog_checks_base/datadog_checks/checks/network.py":{"sha256":"e5b7d11f19ac5286897259c2ac1e8209ee7bee94df199d5155e1b174cce6afbc"},"datadog_checks_base/datadog_checks/checks/network_checks.py":{"sha256":"cdb77741ebeaa7b6a13616873b5725009b7566a77ceef013fe5dd1c76cbdd81b"},"datadog_checks_base/datadog_checks/checks/openmetrics/__init__.py":{"sha256":"96b910b1c359a0b37a0a8753b6e1e50c803ae35bf4f1e7a31418678cf16792c0"},"datadog_checks_base/datadog_checks/checks/openmetrics/base_check.py":{"sha256":"a9ccd2133baa1058f744e494e2bb43cb5221fbbb41b6c3b8a0553ead7f6a851f"},"datadog_checks_base/datadog_checks/checks/openmetrics/mixins.py":{"sha256":"b5b9cf9d77c8dda6d752a4d37d303405fa1935ac071b17a4e8b055160b7d2a28"},"datadog_checks_base/datadog_checks/checks/prometheus/__init__.py":{"sha256":"a12ac852908b6eb9f3b594e893c41a38951a9a1e030b6286c20e76aec9965c8b"},"datadog_checks_base/datadog_checks/checks/prometheus/base_check.py":{"sha256":"882984f28171bfde4a2c34c25f609b5a758917f0c9b9e00b2ba9a0d489ba1e19"},"datadog_checks_base/datadog_checks/checks/prometheus/mixins.py":{"sha256":"aa652ec3963f90c1e7c552d35243d3863f737fa9de5e45131ca55758c5e00de5"},"datadog_checks_base/datadog_checks/checks/prometheus/prometheus_base.py":{"sha256":"434576db21c019a7366f5350b8e305c0790509aadd9cbd980f6c3ac22b87874f"},"datadog_checks_base/datadog_checks/checks/prometheus_check/__init__.py":{"sha256":"9b5434e894e03018e342ee726f635de62122bf0e1d8f59d3f0109f89a95d890d"},"datadog_checks_base/datadog_checks/checks/win/__init__.py":{"sha256":"4441d475ac7181f8e7edf1037da1310d776c647883d0362a5acfb88e44e4d45e"},"datadog_checks_base/datadog_checks/checks/win/winpdh.py":{"sha256":"864f9f437a351bb82a2962e15a1198cc6271f9cc25c3c73522402954fa42ef9e"},"datadog_checks_base/datadog_checks/checks/win/winpdh_base.py":{"sha256":"269e7c39a6562687aa6ad022b1b88c85b5f6be403c11a8412775b3c55715196e"},"datadog_checks_base/datadog_checks/checks/win/winpdh_stub.py":{"sha256":"a1895061a3be05415b331c1b17d2c02b1f912f36ed238948c46d7af68025d7ed"},"datadog_checks_base/datadog_checks/checks/win/wmi/__init__.py":{"sha256":"51008a1bf148ec1c7bc0bb8f6ad3be19ba950e6c13b5cb84a2fd2684fb66327e"},"datadog_checks_base/datadog_checks/checks/win/wmi/counter_type.py":{"sha256":"01ac5dc9d1518c74c4b621a1da0b901da5ffc954abcf81972f8e478abdb098a7"},"datadog_checks_base/datadog_checks/checks/win/wmi/sampler.py":{"sha256":"bbfeea3683c40059f5e1ff52fc459e82200727041a187328d65f58b92b445cdd"},"datadog_checks_base/datadog_checks/checks/winwmi_check.py":{"sha256":"907ea75f4055e675b732171687ce6148d6484d067b36726b942b4e9c5e1d747b"},"datadog_checks_base/datadog_checks/config.py":{"sha256":"3eb01719d94b9e857654c41f7ff9e849a489274c20e010221a7c3b8c240b4a29"},"datadog_checks_base/datadog_checks/errors.py":{"sha256":"785c269eb5fe6dab4881bbbe889cac7aa00f34eff8ae4d54b9a28af3d7af2e18"},"datadog_checks_base/datadog_checks/log.py":{"sha256":"a2bbce80c286344b2a4932da942010a563fea2ea2ba46d40ec69fe8f69910fcd"},"datadog_checks_base/datadog_checks/py.typed":{"sha256":"95aebb28195b8d737effe0df18d71d39c8d8ba6569286fd3930fbc9f9767181e"},"datadog_checks_base/datadog_checks/stubs/__init__.py":{"sha256":"331c49e4d1a353ded64777893a96906746f386f03cf32b30135aa260665377ec"},"datadog_checks_base/datadog_checks/stubs/_util.py":{"sha256":"9989e9f7fbeca50c1359c06188f60c309dc421c40f4a9a407147d18c42c180b5"},"datadog_checks_base/datadog_checks/stubs/aggregator.py":{"sha256":"ea230225c9c41fbb1885a38741cccf1809034d9b1fd696eb6efde1de6bfba762"},"datadog_checks_base/datadog_checks/stubs/datadog_agent.py":{"sha256":"b167bb8f650441e0f3762aa3e0ffe73e1921157f34ff90abe47723db963ec6bf"},"datadog_checks_base/datadog_checks/utils/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/utils/common.py":{"sha256":"470a0220a572f2f6df6b61353fb63b82447d569274d15b6e3f5f0c12b5e7f6b9"},"datadog_checks_base/datadog_checks/utils/containers.py":{"sha256":"ca56286c527f7d5f940b0baf5a66a4eba6ad2df036759f6000b0985835c63a29"},"datadog_checks_base/datadog_checks/utils/headers.py":{"sha256":"8f92abe525d4947ba4dd41870d0367f4cda884df95e57d9fce62718f0e8fe8da"},"datadog_checks_base/datadog_checks/utils/limiter.py":{"sha256":"1aad3f848119c3aaa92394962ffbb331a22991bcef173b242347a54cffef22c1"},"datadog_checks_base/datadog_checks/utils/platform.py":{"sha256":"76ca8472c0bf63b866e28aea3bc449e4de63905a41ee9c8662f09e5eb6fef571"},"datadog_checks_base/datadog_checks/utils/prometheus/__init__.py":{"sha256":"f16c179ccf60d6c7d2e76ebb4180895ff85df0c665e6446006043f4b374d757b"},"datadog_checks_base/datadog_checks/utils/prometheus/functions.py":{"sha256":"e2f5ac4c62e0ba31f0758668d2d940424a833c7a1fa9424cde4f5e22d26a1114"},"datadog_checks_base/datadog_checks/utils/prometheus/metrics_pb2.py":{"sha256":"c60dd47541dee138de478b35dcb50a6765355954ade94eb38ec5511ba957e9d7"},"datadog_checks_base/datadog_checks/utils/proxy.py":{"sha256":"723edeaf00a1ee813aa4a6467fc34c3ae419f354c6b6172de678e39b864a8bd7"},"datadog_checks_base/datadog_checks/utils/subprocess_output.py":{"sha256":"80dea34445564d9eee264533455310e69c72b4d640e369ea8c97a365717a64c2"},"datadog_checks_base/datadog_checks/utils/tailfile.py":{"sha256":"6c4aa2725fac2e0cb0f660f545d5a8b3c1954a50a49f1e58c86ddf5cc068c137"},"datadog_checks_base/datadog_checks/utils/timeout.py":{"sha256":"42e848b0a6686bf335dfe8040b07acbb9219c12317cfdf564f0a9a974262c913"},"datadog_checks_base/datadog_checks/utils/tracing.py":{"sha256":"1d06d06a428cf8bc3be4c0e422d6982588a94ba60edb867fca60d5c43b31e435"},"datadog_checks_base/pyproject.toml":{"sha256":"ea40035a70ef454b890602ad5bd4eb77fac782856922b98d80c8d696c06c7b1a"},"datadog_checks_base/setup.py":{"sha256":"c9c3ca1275d54fae5f5f7e1443898c8b383799d2c568d73b247d360249f1fddf"}}}} \ No newline at end of file diff --git a/datadog_checks_base/CHANGELOG.md b/datadog_checks_base/CHANGELOG.md index 887cf8ad96d08..e44f7a44f1486 100644 --- a/datadog_checks_base/CHANGELOG.md +++ b/datadog_checks_base/CHANGELOG.md @@ -2,6 +2,12 @@ +## 36.10.0 / 2024-07-11 + +***Added***: + +* [NDM] Add NDM metadata support for Cisco ACI ([#17735](https://github.com/DataDog/integrations-core/pull/17735)) + ## 36.9.0 / 2024-07-05 ***Security***: diff --git a/datadog_checks_base/changelog.d/17735.added b/datadog_checks_base/changelog.d/17735.added deleted file mode 100644 index 52f7db64dbecb..0000000000000 --- a/datadog_checks_base/changelog.d/17735.added +++ /dev/null @@ -1 +0,0 @@ -[NDM] Add NDM metadata support for Cisco ACI diff --git a/datadog_checks_base/datadog_checks/base/__about__.py b/datadog_checks_base/datadog_checks/base/__about__.py index ea8fd3f16e17a..6edaa6fd9cf7e 100644 --- a/datadog_checks_base/datadog_checks/base/__about__.py +++ b/datadog_checks_base/datadog_checks/base/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "36.9.0" +__version__ = "36.10.0" diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index 2df14770c809e..ffa4fe2c5b1a5 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -25,7 +25,7 @@ datadog-cassandra==1.18.0 datadog-ceph==2.10.0; sys_platform != 'win32' datadog-cert-manager==4.1.2 datadog-checkpoint-quantum-firewall==1.0.0 -datadog-checks-base==36.9.0 +datadog-checks-base==36.10.0 datadog-checks-dependency-provider==1.4.0 datadog-checks-downloader==4.7.0 datadog-cilium==3.5.1 From 9ffae7a432216d99666f8fdedd03c4c52b247292 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Thu, 11 Jul 2024 15:00:29 +0200 Subject: [PATCH 45/68] Bump minimum base check version required. (#18028) --- cisco_aci/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cisco_aci/pyproject.toml b/cisco_aci/pyproject.toml index 4893a4850eb8e..488df155d2527 100644 --- a/cisco_aci/pyproject.toml +++ b/cisco_aci/pyproject.toml @@ -30,7 +30,7 @@ classifiers = [ "Private :: Do Not Upload", ] dependencies = [ - "datadog-checks-base>=32.6.0", + "datadog-checks-base>=36.10.0", ] dynamic = [ "version", From f84751d412e371d5e671eabbbb3bd30960b36401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?zoe=C2=A0=E2=9C=A8?= <9274242+zoedt@users.noreply.github.com> Date: Thu, 11 Jul 2024 09:06:37 -0400 Subject: [PATCH 46/68] [NDM] [Cisco ACI] Update dashboard (#17943) * First pass to update Cisco ACI dashboard * Add doc update suggestion to description * Separate egress/ingress graphs, fix wrong metrics used --- .../dashboards/cisco_aci_dashboard.json | 1517 +++++++++++------ 1 file changed, 1040 insertions(+), 477 deletions(-) diff --git a/cisco_aci/assets/dashboards/cisco_aci_dashboard.json b/cisco_aci/assets/dashboards/cisco_aci_dashboard.json index 1a5d5a3b95757..8b145f1953a94 100644 --- a/cisco_aci/assets/dashboards/cisco_aci_dashboard.json +++ b/cisco_aci/assets/dashboards/cisco_aci_dashboard.json @@ -3,559 +3,1122 @@ "description": "", "widgets": [ { - "id": 0, + "id": 1525427820254164, "definition": { - "type": "image", - "url": "/static/images/logos/cisco-aci_large.svg", - "sizing": "zoom" - }, - "layout": { - "x": 1, - "y": 2, - "width": 36, - "height": 27 - } - }, - { - "id": 1, - "definition": { - "type": "note", - "content": "APIC controller", + "title": "Overview", "background_color": "gray", - "font_size": "18", - "text_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "bottom" - }, - "layout": { - "x": 2, - "y": 31, - "width": 18, - "height": 6 - } - }, - { - "id": 2, - "definition": { - "type": "query_value", - "requests": [ + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "q": "avg:cisco_aci.capacity.apic.tenant.utilized{*}/avg:cisco_aci.capacity.apic.tenant.limit{*}*100", - "aggregator": "last" - } - ], - "custom_links": [], - "title": "Tenant Utilization", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "autoscale": true, - "custom_unit": "%", - "precision": 2 - }, - "layout": { - "x": 2, - "y": 39, - "width": 18, - "height": 10 - } - }, - { - "id": 3, - "definition": { - "type": "query_value", - "requests": [ + "id": 939490896296942, + "definition": { + "type": "image", + "url": "/static/images/logos/cisco-aci_large.svg", + "sizing": "contain", + "margin": "md", + "has_background": false, + "has_border": false, + "vertical_align": "center", + "horizontal_align": "center" + }, + "layout": { + "x": 0, + "y": 0, + "width": 2, + "height": 2 + } + }, { - "q": "avg:cisco_aci.capacity.apic.fabric_node.utilized{*}/avg:cisco_aci.capacity.apic.fabric_node.limit{*}*100", - "aggregator": "avg" + "id": 2544884479345034, + "definition": { + "type": "note", + "content": "**Cisco ACI Overview Dashboard**\n\nThis dashboard provides a comprehensive overview of your Cisco ACI environment, allowing you to effortlessly monitor the status of your fabric, tenants, EPGs, and so on. Stay informed about network performance, traffic patterns, and potential issues, to ensure optimal network efficiency and reliability.\n\n**Further reading on NDM**\n\n- Datadog's blog post on [Monitoring data centers and network devices with Datadog](https://www.datadoghq.com/blog/datacenter-monitoring-dashboards/)\n- Network Device Monitoring [docs](https://docs.datadoghq.com/network_performance_monitoring/devices) ", + "background_color": "white", + "font_size": "14", + "text_align": "left", + "vertical_align": "top", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left", + "has_padding": true + }, + "layout": { + "x": 2, + "y": 0, + "width": 4, + "height": 2 + } } - ], - "custom_links": [], - "title": "Switch Utilization", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "autoscale": true, - "custom_unit": "%", - "precision": 2 + ] }, "layout": { - "x": 2, - "y": 51, - "width": 18, - "height": 10 + "x": 0, + "y": 0, + "width": 6, + "height": 3 } }, { - "id": 4, + "id": 218778768743004, "definition": { - "type": "query_value", - "requests": [ + "title": "APIC Controller", + "background_color": "blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "q": "avg:cisco_aci.capacity.apic.endpoint_group.utilized{*}/avg:cisco_aci.capacity.apic.endpoint_group.limit{*}*100", - "aggregator": "avg" - } - ], - "custom_links": [], - "title": "EPG Utilization", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "autoscale": true, - "custom_unit": "%", - "precision": 2 - }, - "layout": { - "x": 2, - "y": 63, - "width": 18, - "height": 10 - } - }, - { - "id": 5, - "definition": { - "type": "note", - "content": "Tenants (Logical Infrastructure)\n", - "background_color": "gray", - "font_size": "18", - "text_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "bottom" - }, - "layout": { - "x": 39, - "y": 2, - "width": 64, - "height": 5 - } - }, - { - "id": 6, - "definition": { - "type": "note", - "content": "Fabric (Physical Infrastructure)", - "background_color": "gray", - "font_size": "18", - "text_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "bottom" - }, - "layout": { - "x": 105, - "y": 2, - "width": 64, - "height": 5 - } - }, - { - "id": 7, - "definition": { - "type": "hostmap", - "requests": { - "fill": { - "q": "avg:cisco_aci.fabric.node.health.cur{*} by {host}" - } - }, - "custom_links": [], - "title": "Fabric Switch Health (by role)", - "title_size": "16", - "title_align": "left", - "no_metric_hosts": false, - "no_group_hosts": true, - "group": ["apic_role"], - "style": { - "palette": "green_to_orange", - "palette_flip": false - } - }, - "layout": { - "x": 105, - "y": 9, - "width": 64, - "height": 20 - } - }, - { - "id": 8, - "definition": { - "type": "toplist", - "requests": [ + "id": 2, + "definition": { + "title": "Tenant Utilization", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:cisco_aci.capacity.apic.tenant.utilized{*}", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:cisco_aci.capacity.apic.tenant.limit{*}", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "query1 / query2 * 100", + "number_format": { + "unit": { + "label": "%", + "type": "custom_unit_label" + } + } + } + ] + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 0, + "y": 0, + "width": 2, + "height": 2 + } + }, + { + "id": 3, + "definition": { + "title": "Switch Utilization", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:cisco_aci.capacity.apic.fabric_node.utilized{*}", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:cisco_aci.capacity.apic.fabric_node.limit{*}", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "query1 / query2 * 100", + "number_format": { + "unit": { + "label": "%", + "type": "custom_unit_label" + } + } + } + ] + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 2, + "y": 0, + "width": 2, + "height": 2 + } + }, { - "q": "top(avg:cisco_aci.tenant.health{*} by {tenant}, 10, 'mean', 'desc')", - "style": { - "palette": "dog_classic" + "id": 4, + "definition": { + "title": "EPG Utilization", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:cisco_aci.capacity.apic.endpoint_group.utilized{*}", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:cisco_aci.capacity.apic.endpoint_group.limit{*}", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "query1 / query2 * 100", + "number_format": { + "unit": { + "label": "%", + "type": "custom_unit_label" + } + } + } + ] + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 4, + "y": 0, + "width": 2, + "height": 2 } } - ], - "custom_links": [], - "title": "Tenant Health", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - } + ] }, "layout": { - "x": 39, - "y": 9, - "width": 64, - "height": 20 + "x": 6, + "y": 0, + "width": 6, + "height": 3 } }, { - "id": 9, + "id": 5807304798323574, "definition": { - "type": "timeseries", - "requests": [ + "title": "Tenants (Logical Infrastructure)", + "background_color": "vivid_green", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "q": "sum:cisco_aci.tenant.egress_bytes.unicast.rate{*} by {tenant}", - "display_type": "line", - "style": { - "palette": "warm", - "line_type": "solid", - "line_width": "normal" + "id": 8, + "definition": { + "title": "Tenant Health", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "style": { + "palette": "dog_classic" + }, + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:cisco_aci.tenant.health{$tenant} by {tenant}", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "custom_links": [], + "style": {} + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 2 } }, { - "q": "sum:cisco_aci.tenant.ingress_bytes.unicast.rate{*} by {tenant}*-1", - "display_type": "line", - "style": { - "palette": "cool", - "line_type": "dotted", - "line_width": "thick" + "id": 12, + "definition": { + "title": "Tenant Faults", + "title_size": "16", + "title_align": "left", + "show_legend": false, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:cisco_aci.tenant.fault_counter{$tenant} by {tenant}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "bars" + } + ], + "custom_links": [] + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 2 } - } - ], - "custom_links": [], - "yaxis": { - "include_zero": false - }, - "title": "Bandwidth by Tenant (ingress is negative)", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "show_legend": false, - "legend_size": "0" - }, - "layout": { - "x": 39, - "y": 30, - "width": 64, - "height": 14 - } - }, - { - "id": 10, - "definition": { - "type": "timeseries", - "requests": [ + }, { - "q": "sum:cisco_aci.fabric.port.egr_total.bytes.rate{*} by {node_id}", - "display_type": "line", - "style": { - "palette": "warm", - "line_type": "solid", - "line_width": "normal" + "id": 9, + "definition": { + "title": "Bandwidth by Tenant (egress)", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "vertical", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:cisco_aci.tenant.egress_bytes.unicast.rate{$tenant} by {tenant}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "warm", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ], + "yaxis": { + "include_zero": false + }, + "custom_links": [] + }, + "layout": { + "x": 0, + "y": 2, + "width": 6, + "height": 3 } }, { - "q": "sum:cisco_aci.fabric.port.ingr_total.bytes.rate{*} by {node_id}*-1", - "display_type": "line", - "style": { - "palette": "cool", - "line_type": "dotted", - "line_width": "normal" + "id": 7114376680227872, + "definition": { + "title": "Bandwidth by Tenant (ingress)", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "vertical", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:cisco_aci.tenant.ingress_bytes.unicast.rate{$tenant} by {tenant}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ], + "yaxis": { + "include_zero": false + }, + "custom_links": [] + }, + "layout": { + "x": 6, + "y": 2, + "width": 6, + "height": 3 } } - ], - "custom_links": [], - "title": "Bandwidth by Switch (ingress is negative)", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "show_legend": false, - "legend_size": "0" - }, - "layout": { - "x": 105, - "y": 30, - "width": 64, - "height": 14 - } - }, - { - "id": 11, - "definition": { - "type": "note", - "content": "Network", - "background_color": "gray", - "font_size": "18", - "text_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "right" + ] }, "layout": { - "x": 24, - "y": 30, + "x": 0, + "y": 3, "width": 12, - "height": 14 + "height": 6 } }, { - "id": 12, + "id": 5938183313879842, "definition": { - "type": "timeseries", - "requests": [ + "title": "EPGs (Endpoint Groups)", + "background_color": "green", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "q": "sum:cisco_aci.tenant.fault_counter{*} by {tenant}", - "display_type": "bars", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" + "id": 16, + "definition": { + "title": "Total EPGs", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:cisco_aci.tenant.egress_pkts.unicast.rate{$tenant} by {endpoint_group}", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "count_not_null(query1)" + } + ] + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 0, + "y": 0, + "width": 2, + "height": 1 } - } - ], - "custom_links": [], - "title": "Tenant Faults", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "show_legend": false, - "legend_size": "0" - }, - "layout": { - "x": 39, - "y": 45, - "width": 64, - "height": 14 - } - }, - { - "id": 13, - "definition": { - "type": "timeseries", - "requests": [ + }, + { + "id": 17, + "definition": { + "title": "Top 10 EPGs by traffic", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "style": { + "palette": "purple" + }, + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:cisco_aci.tenant.egress_bytes.unicast.rate{$tenant} by {endpoint_group,tenant}", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:cisco_aci.tenant.ingress_bytes.unicast.rate{$tenant} by {endpoint_group,tenant}", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "top(query1, 10, 'mean', 'desc') + top(query2, 10, 'mean', 'desc')" + } + ], + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "custom_links": [], + "style": {} + }, + "layout": { + "x": 2, + "y": 0, + "width": 3, + "height": 2 + } + }, { - "q": "sum:cisco_aci.fabric.port.fault_counter.warn{*} by {node_id}+sum:cisco_aci.fabric.port.fault_counter.crit{*} by {node_id}", - "display_type": "bars", - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" + "id": 20, + "definition": { + "title": "Top 10 EPGs by IP", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "style": { + "palette": "dog_classic" + }, + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:cisco_aci.tenant.egress_bytes.unicast.rate{$tenant} by {ip,application,endpoint_group}", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "custom_links": [], + "style": {} + }, + "layout": { + "x": 5, + "y": 0, + "width": 4, + "height": 2 + } + }, + { + "id": 19, + "definition": { + "title": "Top 10 EPG Ports by traffic", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "style": { + "palette": "orange" + }, + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:cisco_aci.fabric.port.egr_bytes.unicast{$tenant} by {node_id,port,endpoint_group}", + "aggregator": "avg" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:cisco_aci.fabric.port.ingr_bytes.unicast{$tenant} by {node_id,port,endpoint_group}", + "aggregator": "avg" + } + ], + "formulas": [ + { + "formula": "exclude_null(query1) + exclude_null(query2)" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "custom_links": [], + "style": {} + }, + "layout": { + "x": 9, + "y": 0, + "width": 3, + "height": 2 + } + }, + { + "id": 18, + "definition": { + "title": "Applications", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:cisco_aci.tenant.ingress_pkts.flood.cum{$tenant} by {application}", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "count_not_null(query1)" + } + ] + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 0, + "y": 1, + "width": 2, + "height": 1 } } - ], - "custom_links": [], - "title": "Faults by switch", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "show_legend": false, - "legend_size": "0" + ] }, "layout": { - "x": 105, - "y": 45, - "width": 64, - "height": 14 - } - }, - { - "id": 14, - "definition": { - "type": "note", - "content": "Faults", - "background_color": "gray", - "font_size": "18", - "text_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "right" - }, - "layout": { - "x": 24, - "y": 45, - "width": 12, - "height": 14 - } - }, - { - "id": 15, - "definition": { - "type": "note", - "content": "Endpoint Group Information", - "background_color": "gray", - "font_size": "18", - "text_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "right" - }, - "layout": { - "x": 24, - "y": 64, + "x": 0, + "y": 9, "width": 12, - "height": 21 + "height": 3 } }, { - "id": 16, + "id": 1574813195262928, "definition": { - "type": "query_value", - "requests": [ + "title": "Fabric (Physical Infrastructure)", + "background_color": "vivid_blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "q": "count_not_null(avg:cisco_aci.tenant.egress_pkts.unicast.rate{*} by {endpoint_group})", - "aggregator": "last" - } - ], - "custom_links": [], - "title": "Total EPGs", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "autoscale": true, - "precision": 2 - }, - "layout": { - "x": 39, - "y": 64, - "width": 16, - "height": 10 - } - }, - { - "id": 17, - "definition": { - "type": "toplist", - "requests": [ + "id": 7, + "definition": { + "title": "Fabric Switch Health (by pod, role)", + "title_size": "16", + "title_align": "left", + "type": "hostmap", + "requests": { + "fill": { + "q": "avg:cisco_aci.fabric.node.health.cur{$pod} by {host}" + } + }, + "no_metric_hosts": false, + "no_group_hosts": true, + "group": [ + "fabric_pod_id", + "apic_role" + ], + "scope": [ + "$pod" + ], + "style": { + "palette": "green_to_orange", + "palette_flip": false + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 2 + } + }, { - "q": "top(sum:cisco_aci.tenant.egress_bytes.unicast.rate{*} by {endpoint_group,tenant}, 10, 'mean', 'desc')+top(sum:cisco_aci.tenant.ingress_bytes.unicast.rate{*} by {endpoint_group,tenant}, 10, 'mean', 'desc')", - "style": { - "palette": "purple" + "id": 13, + "definition": { + "title": "Faults by switch", + "title_size": "16", + "title_align": "left", + "show_legend": false, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1 + query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:cisco_aci.fabric.port.fault_counter.warn{$pod} by {node_id,fabric_pod_id}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:cisco_aci.fabric.port.fault_counter.crit{$pod} by {node_id,fabric_pod_id}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "purple", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "bars" + } + ], + "custom_links": [] + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 2 } - } - ], - "custom_links": [], - "title": "Top 10 EPGs by traffic", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - } - }, - "layout": { - "x": 57, - "y": 64, - "width": 38, - "height": 21 - } - }, - { - "id": 18, - "definition": { - "type": "query_value", - "requests": [ + }, + { + "id": 10, + "definition": { + "title": "Bandwidth by Switch (egress)", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "vertical", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:cisco_aci.fabric.port.egr_total.bytes.rate{$pod} by {node_id,fabric_pod_id}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "warm", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ], + "custom_links": [] + }, + "layout": { + "x": 0, + "y": 2, + "width": 6, + "height": 3 + } + }, { - "q": "count_not_null(avg:cisco_aci.tenant.ingress_pkts.flood.cum{*} by {application})", - "aggregator": "last" + "id": 4676643676192110, + "definition": { + "title": "Bandwidth by Switch (ingress)", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "vertical", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:cisco_aci.fabric.port.ingr_total.bytes.rate{$pod} by {node_id,fabric_pod_id}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ], + "custom_links": [] + }, + "layout": { + "x": 6, + "y": 2, + "width": 6, + "height": 3 + } } - ], - "custom_links": [], - "title": "Applications", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - }, - "autoscale": true, - "precision": 2 + ] }, "layout": { - "x": 39, - "y": 75, - "width": 16, - "height": 10 + "x": 0, + "y": 0, + "width": 12, + "height": 6, + "is_column_break": true } }, { - "id": 19, + "id": 5069185858105160, "definition": { - "type": "toplist", - "requests": [ + "title": "Leafs", + "background_color": "blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "q": "top(exclude_null(avg:cisco_aci.fabric.port.egr_bytes.unicast{*} by {node_id,port,endpoint_group}) + exclude_null(avg:cisco_aci.fabric.port.ingr_bytes.unicast{*} by {node_id,port,endpoint_group}),10,'mean','desc')", - "style": { - "palette": "orange" + "id": 2991165436190176, + "definition": { + "title": "Interfaces", + "title_size": "16", + "title_align": "left", + "type": "query_table", + "requests": [ + { + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.egr_total.bytes.rate{apic_role:leaf, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + }, + { + "name": "query5", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.ingr_total.bytes.rate{apic_role:leaf, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + }, + { + "name": "query2", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.egr_total.bytes.cum{apic_role:leaf, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + }, + { + "name": "query3", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.ingr_total.bytes.cum{apic_role:leaf, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + }, + { + "name": "query4", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.fault_counter.crit{apic_role:leaf, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "formulas": [ + { + "cell_display_mode": "bar", + "alias": "RATE OF PACKETS OUT", + "formula": "query1" + }, + { + "cell_display_mode": "bar", + "alias": "RATE OF PACKETS IN", + "formula": "query5" + }, + { + "cell_display_mode": "bar", + "alias": "total bytes out", + "formula": "query2" + }, + { + "cell_display_mode": "bar", + "alias": "total bytes in", + "formula": "query3" + }, + { + "cell_display_mode": "bar", + "alias": "critical faults", + "formula": "query4" + } + ] + } + ], + "has_search_bar": "auto" + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 3 } } - ], - "custom_links": [], - "title": "Top 10 EPG Ports by traffic", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - } + ] }, "layout": { - "x": 133, - "y": 64, - "width": 36, - "height": 21 + "x": 0, + "y": 0, + "width": 6, + "height": 4 } }, { - "id": 20, + "id": 3250638514666220, "definition": { - "type": "toplist", - "requests": [ + "title": "Spines", + "background_color": "blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "q": "top(avg:cisco_aci.tenant.egress_bytes.unicast.rate{*} by {ip,application,endpoint_group}, 10, 'mean', 'desc')", - "style": { - "palette": "dog_classic" + "id": 1813163214351510, + "definition": { + "title": "Interfaces", + "title_size": "16", + "title_align": "left", + "type": "query_table", + "requests": [ + { + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.egr_total.bytes.rate{apic_role:spine, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + }, + { + "name": "query5", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.ingr_total.bytes.rate{apic_role:spine, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + }, + { + "name": "query2", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.egr_total.bytes.cum{apic_role:spine, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + }, + { + "name": "query3", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.ingr_total.bytes.cum{apic_role:spine, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + }, + { + "name": "query4", + "data_source": "metrics", + "query": "avg:cisco_aci.fabric.port.fault_counter.crit{apic_role:spine, $pod} by {fabric_pod_id,node_id,port}", + "aggregator": "avg" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "formulas": [ + { + "cell_display_mode": "bar", + "alias": "RATE OF PACKETS OUT", + "formula": "query1" + }, + { + "cell_display_mode": "bar", + "alias": "RATE OF PACKETS IN", + "formula": "query5" + }, + { + "cell_display_mode": "bar", + "alias": "total bytes out", + "formula": "query2" + }, + { + "cell_display_mode": "bar", + "alias": "total bytes in", + "formula": "query3" + }, + { + "cell_display_mode": "bar", + "alias": "critical faults", + "formula": "query4" + } + ] + } + ], + "has_search_bar": "auto" + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 3 } } - ], - "custom_links": [], - "title": "Top 10 EPGs by IP", - "title_size": "16", - "title_align": "left", - "time": { - "live_span": "1h" - } + ] }, "layout": { - "x": 96, - "y": 64, - "width": 36, - "height": 21 + "x": 6, + "y": 0, + "width": 6, + "height": 4 } } ], - "template_variables": [], - "layout_type": "free", - "is_read_only": true, - "notify_list": [] -} + "template_variables": [ + { + "name": "tenant", + "prefix": "tenant", + "available_values": [ + "her" + ], + "default": "*" + }, + { + "name": "pod", + "prefix": "fabric_pod_id", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "notify_list": [], + "reflow_type": "fixed" +} \ No newline at end of file From 2a91fdabc9db64ba5bfa1ac8a311611ecfb261d4 Mon Sep 17 00:00:00 2001 From: bgoldberg122 Date: Thu, 11 Jul 2024 09:11:46 -0400 Subject: [PATCH 47/68] add missing offering integration classifier tag to all listings (#18023) --- active_directory/manifest.json | 5 +- activemq/manifest.json | 5 +- activemq_xml/manifest.json | 3 +- aerospike/manifest.json | 5 +- agent_metrics/manifest.json | 5 +- airbyte/manifest.json | 5 +- airflow/manifest.json | 5 +- amazon_eks/manifest.json | 3 +- amazon_eks_blueprints/manifest.json | 3 +- amazon_msk/manifest.json | 3 +- ambari/manifest.json | 5 +- apache/manifest.json | 5 +- arangodb/manifest.json | 5 +- argo_rollouts/manifest.json | 5 +- argo_workflows/manifest.json | 5 +- argocd/manifest.json | 5 +- aspdotnet/manifest.json | 3 +- avi_vantage/manifest.json | 3 +- azure_active_directory/manifest.json | 5 +- azure_iot_edge/manifest.json | 5 +- boundary/manifest.json | 5 +- btrfs/manifest.json | 3 +- cacti/manifest.json | 5 +- calico/manifest.json | 5 +- cassandra/manifest.json | 5 +- cassandra_nodetool/manifest.json | 3 +- ceph/manifest.json | 5 +- cert_manager/manifest.json | 3 +- cilium/manifest.json | 5 +- cisco_aci/manifest.json | 5 +- cisco_duo/manifest.json | 5 +- cisco_sdwan/manifest.json | 5 +- cisco_secure_firewall/manifest.json | 5 +- cisco_umbrella_dns/manifest.json | 5 +- citrix_hypervisor/manifest.json | 5 +- clickhouse/manifest.json | 5 +- cloud_foundry_api/manifest.json | 5 +- cloudera/manifest.json | 5 +- cockroachdb/manifest.json | 5 +- confluent_platform/manifest.json | 5 +- consul/manifest.json | 5 +- consul_connect/manifest.json | 3 +- container/manifest.json | 3 +- containerd/manifest.json | 3 +- coredns/manifest.json | 5 +- couch/manifest.json | 5 +- couchbase/manifest.json | 3 +- cri/manifest.json | 3 +- crio/manifest.json | 3 +- databricks/manifest.json | 5 +- datadog_cluster_agent/manifest.json | 5 +- datadog_operator/manifest.json | 3 +- dcgm/manifest.json | 3 +- directory/manifest.json | 5 +- disk/manifest.json | 5 +- dns_check/manifest.json | 5 +- docker_daemon/manifest.json | 5 +- dotnetclr/manifest.json | 3 +- druid/manifest.json | 5 +- ecs_fargate/manifest.json | 3 +- eks_anywhere/manifest.json | 3 +- eks_fargate/manifest.json | 5 +- elastic/manifest.json | 5 +- envoy/manifest.json | 5 +- etcd/manifest.json | 5 +- exchange_server/manifest.json | 5 +- external_dns/manifest.json | 5 +- flink/manifest.json | 5 +- fluentd/manifest.json | 3 +- fluxcd/manifest.json | 5 +- foundationdb/manifest.json | 5 +- gearmand/manifest.json | 5 +- gitlab/manifest.json | 5 +- gitlab_runner/manifest.json | 5 +- gke/manifest.json | 5 +- glusterfs/manifest.json | 5 +- go-metro/manifest.json | 5 +- go_expvar/manifest.json | 3 +- gunicorn/manifest.json | 5 +- haproxy/manifest.json | 5 +- harbor/manifest.json | 5 +- hazelcast/manifest.json | 5 +- hdfs_datanode/manifest.json | 5 +- hdfs_namenode/manifest.json | 5 +- helm/manifest.json | 3 +- hive/manifest.json | 5 +- hivemq/manifest.json | 5 +- http_check/manifest.json | 5 +- hudi/manifest.json | 5 +- hyperv/manifest.json | 3 +- iam_access_analyzer/manifest.json | 3 +- ibm_ace/manifest.json | 5 +- ibm_db2/manifest.json | 5 +- ibm_i/manifest.json | 3 +- ibm_mq/manifest.json | 5 +- ibm_was/manifest.json | 5 +- ignite/manifest.json | 5 +- iis/manifest.json | 5 +- impala/manifest.json | 5 +- istio/manifest.json | 5 +- jboss_wildfly/manifest.json | 5 +- jmeter/manifest.json | 5 +- journald/manifest.json | 3 +- kafka/manifest.json | 5 +- kafka_consumer/manifest.json | 3 +- karpenter/manifest.json | 5 +- kong/manifest.json | 5 +- kube_apiserver_metrics/manifest.json | 3 +- kube_controller_manager/manifest.json | 3 +- kube_dns/manifest.json | 3 +- kube_metrics_server/manifest.json | 3 +- kube_proxy/manifest.json | 3 +- kube_scheduler/manifest.json | 5 +- kubelet/manifest.json | 5 +- kubernetes/manifest.json | 3 +- kubernetes_cluster_autoscaler/manifest.json | 11 +-- kubernetes_state/manifest.json | 5 +- kubernetes_state_core/manifest.json | 5 +- kyototycoon/manifest.json | 5 +- kyverno/manifest.json | 5 +- langchain/manifest.json | 5 +- lighttpd/manifest.json | 5 +- linkerd/manifest.json | 3 +- linux_proc_extras/manifest.json | 5 +- mapr/manifest.json | 5 +- mapreduce/manifest.json | 5 +- marathon/manifest.json | 5 +- marklogic/manifest.json | 5 +- mcache/manifest.json | 5 +- mesos_master/manifest.json | 3 +- mesos_slave/manifest.json | 5 +- mongo/manifest.json | 5 +- mysql/manifest.json | 5 +- nagios/manifest.json | 5 +- network/manifest.json | 5 +- nfsstat/manifest.json | 5 +- nginx/manifest.json | 5 +- nginx_ingress_controller/manifest.json | 5 +- ntp/manifest.json | 5 +- nvidia_jetson/manifest.json | 3 +- nvidia_triton/manifest.json | 5 +- oke/manifest.json | 3 +- oom_kill/manifest.json | 3 +- openai/manifest.json | 3 +- openldap/manifest.json | 5 +- openmetrics/manifest.json | 3 +- openshift/manifest.json | 3 +- openstack/manifest.json | 5 +- openstack_controller/manifest.json | 5 +- oracle/manifest.json | 3 +- otel/manifest.json | 3 +- pan_firewall/manifest.json | 5 +- pdh_check/manifest.json | 3 +- pgbouncer/manifest.json | 5 +- php_fpm/manifest.json | 3 +- ping_one/manifest.json | 77 ++++++++++--------- pivotal_pks/manifest.json | 3 +- podman/manifest.json | 3 +- postfix/manifest.json | 5 +- postgres/manifest.json | 5 +- powerdns_recursor/manifest.json | 5 +- presto/manifest.json | 5 +- process/manifest.json | 5 +- prometheus/manifest.json | 3 +- proxysql/manifest.json | 5 +- pulsar/manifest.json | 5 +- rabbitmq/manifest.json | 5 +- ray/manifest.json | 5 +- redisdb/manifest.json | 5 +- rethinkdb/manifest.json | 5 +- riak/manifest.json | 5 +- riakcs/manifest.json | 3 +- sap_hana/manifest.json | 3 +- scylla/manifest.json | 5 +- sidekiq/manifest.json | 5 +- silk/manifest.json | 3 +- singlestore/manifest.json | 5 +- snmp/manifest.json | 3 +- snmp_american_power_conversion/manifest.json | 3 +- snmp_arista/manifest.json | 3 +- snmp_aruba/manifest.json | 5 +- snmp_chatsworth_products/manifest.json | 3 +- snmp_check_point/manifest.json | 3 +- snmp_cisco/manifest.json | 3 +- snmp_dell/manifest.json | 3 +- snmp_f5/manifest.json | 3 +- snmp_fortinet/manifest.json | 3 +- snmp_hewlett_packard_enterprise/manifest.json | 3 +- snmp_juniper/manifest.json | 3 +- snmp_netapp/manifest.json | 3 +- snowflake/manifest.json | 6 +- solr/manifest.json | 5 +- sonarqube/manifest.json | 5 +- spark/manifest.json | 5 +- sqlserver/manifest.json | 5 +- squid/manifest.json | 5 +- ssh_check/manifest.json | 5 +- statsd/manifest.json | 5 +- strimzi/manifest.json | 5 +- supervisord/manifest.json | 5 +- system_core/manifest.json | 5 +- system_swap/manifest.json | 5 +- systemd/manifest.json | 3 +- tcp_check/manifest.json | 5 +- tcp_queue_length/manifest.json | 3 +- teamcity/manifest.json | 5 +- tekton/manifest.json | 5 +- teleport/manifest.json | 13 ++-- temporal/manifest.json | 5 +- tenable/manifest.json | 5 +- teradata/manifest.json | 3 +- terraform/manifest.json | 3 +- tls/manifest.json | 3 +- tokumx/manifest.json | 5 +- tomcat/manifest.json | 5 +- torchserve/manifest.json | 5 +- traefik_mesh/manifest.json | 5 +- traffic_server/manifest.json | 5 +- twemproxy/manifest.json | 5 +- twistlock/manifest.json | 5 +- varnish/manifest.json | 5 +- vault/manifest.json | 5 +- vertica/manifest.json | 5 +- vllm/manifest.json | 9 ++- voltdb/manifest.json | 5 +- vsphere/manifest.json | 3 +- weaviate/manifest.json | 5 +- weblogic/manifest.json | 5 +- win32_event_log/manifest.json | 5 +- wincrashdetect/manifest.json | 5 +- windows_performance_counters/manifest.json | 3 +- windows_registry/manifest.json | 74 +++++++++--------- windows_service/manifest.json | 3 +- winkmem/manifest.json | 3 +- wmi_check/manifest.json | 3 +- yarn/manifest.json | 5 +- zk/manifest.json | 5 +- 237 files changed, 716 insertions(+), 481 deletions(-) diff --git a/active_directory/manifest.json b/active_directory/manifest.json index 0e4eb2539db43..bdb701e3e058c 100644 --- a/active_directory/manifest.json +++ b/active_directory/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { @@ -51,4 +52,4 @@ "[Active Directory] Anomalous number of successful LDAP bindings for host: {{host.name}}": "assets/monitors/ldap_binding_successful.json" } } -} +} \ No newline at end of file diff --git a/activemq/manifest.json b/activemq/manifest.json index d8b4a17ccc98b..b1037a8160795 100644 --- a/activemq/manifest.json +++ b/activemq/manifest.json @@ -16,7 +16,8 @@ "Category::Message Queues", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -63,4 +64,4 @@ "activemq_processes": "assets/saved_views/activemq_processes.json" } } -} +} \ No newline at end of file diff --git a/activemq_xml/manifest.json b/activemq_xml/manifest.json index acea6a8a2e266..4522c0c5358e4 100644 --- a/activemq_xml/manifest.json +++ b/activemq_xml/manifest.json @@ -16,7 +16,8 @@ "Category::Message Queues", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/aerospike/manifest.json b/aerospike/manifest.json index 5468b738a8e16..9975da7c8e1c6 100644 --- a/aerospike/manifest.json +++ b/aerospike/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Linux", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -50,4 +51,4 @@ "Aerospike Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/agent_metrics/manifest.json b/agent_metrics/manifest.json index 8dba055e71d63..50b6884df05ff 100644 --- a/agent_metrics/manifest.json +++ b/agent_metrics/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Linux", "Supported OS::macOS", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { @@ -40,4 +41,4 @@ } } } -} +} \ No newline at end of file diff --git a/airbyte/manifest.json b/airbyte/manifest.json index 9dca554ce7485..581e8ec26fbe9 100644 --- a/airbyte/manifest.json +++ b/airbyte/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Linux", "Supported OS::Windows", "Supported OS::macOS", - "Submitted Data Type::Metrics" + "Submitted Data Type::Metrics", + "Offering::Integration" ] }, "assets": { @@ -58,4 +59,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/airflow/manifest.json b/airflow/manifest.json index 16d1f290aef4e..e567027baf5e9 100644 --- a/airflow/manifest.json +++ b/airflow/manifest.json @@ -16,7 +16,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -59,4 +60,4 @@ "Ongoing Duration": "assets/monitors/ongoing_duration.json" } } -} +} \ No newline at end of file diff --git a/amazon_eks/manifest.json b/amazon_eks/manifest.json index afdf066fcc4c9..740e7a6f97040 100644 --- a/amazon_eks/manifest.json +++ b/amazon_eks/manifest.json @@ -21,7 +21,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/amazon_eks_blueprints/manifest.json b/amazon_eks_blueprints/manifest.json index e01f82b2c44c0..657c31de2c929 100644 --- a/amazon_eks_blueprints/manifest.json +++ b/amazon_eks_blueprints/manifest.json @@ -18,7 +18,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/amazon_msk/manifest.json b/amazon_msk/manifest.json index 2e03dbbfedf61..dd92a3fe42972 100644 --- a/amazon_msk/manifest.json +++ b/amazon_msk/manifest.json @@ -15,7 +15,8 @@ "Category::AWS", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/ambari/manifest.json b/ambari/manifest.json index e125fff936417..7cab550b103ce 100644 --- a/ambari/manifest.json +++ b/ambari/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Category::Network", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "Ambari base dashboard": "assets/dashboards/base_dashboard.json" } } -} +} \ No newline at end of file diff --git a/apache/manifest.json b/apache/manifest.json index a6b64bd669091..bbb89a261015e 100644 --- a/apache/manifest.json +++ b/apache/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -64,4 +65,4 @@ "apache_processes": "assets/saved_views/apache_processes.json" } } -} +} \ No newline at end of file diff --git a/arangodb/manifest.json b/arangodb/manifest.json index 152c5aaa1e0d2..6ad33cb25e24b 100644 --- a/arangodb/manifest.json +++ b/arangodb/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -54,4 +55,4 @@ "[ArangoDB] High server User mode percentage usage": "assets/monitors/high_server_user_mode.json" } } -} +} \ No newline at end of file diff --git a/argo_rollouts/manifest.json b/argo_rollouts/manifest.json index 9f7aaeb55bd8c..40a808448b5bd 100644 --- a/argo_rollouts/manifest.json +++ b/argo_rollouts/manifest.json @@ -20,7 +20,8 @@ "Category::Developer Tools", "Category::Log Collection", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -63,4 +64,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/argo_workflows/manifest.json b/argo_workflows/manifest.json index 1a112cade39f3..ad696000bc726 100644 --- a/argo_workflows/manifest.json +++ b/argo_workflows/manifest.json @@ -16,7 +16,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Category::Developer Tools", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "assets": { @@ -61,4 +62,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/argocd/manifest.json b/argocd/manifest.json index e08835ac32999..fd535bde7b52c 100644 --- a/argocd/manifest.json +++ b/argocd/manifest.json @@ -20,7 +20,8 @@ "Category::Kubernetes", "Category::Configuration & Deployment", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -69,4 +70,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/aspdotnet/manifest.json b/aspdotnet/manifest.json index 551fd7ccd061d..b5c5fb9c05234 100644 --- a/aspdotnet/manifest.json +++ b/aspdotnet/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Languages", "Category::Log Collection", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { diff --git a/avi_vantage/manifest.json b/avi_vantage/manifest.json index 48127d4d5ef82..c43832539337d 100644 --- a/avi_vantage/manifest.json +++ b/avi_vantage/manifest.json @@ -16,7 +16,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/azure_active_directory/manifest.json b/azure_active_directory/manifest.json index 2ac90a65350fb..100d4c2649898 100644 --- a/azure_active_directory/manifest.json +++ b/azure_active_directory/manifest.json @@ -18,7 +18,8 @@ "Category::Security", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -41,4 +42,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/azure_iot_edge/manifest.json b/azure_iot_edge/manifest.json index 611bc11b08d4d..3ba9fb4af263c 100644 --- a/azure_iot_edge/manifest.json +++ b/azure_iot_edge/manifest.json @@ -18,7 +18,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -57,4 +58,4 @@ "Edge Hub retries": "assets/monitors/edgehub_retries.json" } } -} +} \ No newline at end of file diff --git a/boundary/manifest.json b/boundary/manifest.json index 3acb04237b93c..eeb998c78af4d 100644 --- a/boundary/manifest.json +++ b/boundary/manifest.json @@ -16,7 +16,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Category::Configuration & Deployment", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "Boundary Overview": "assets/dashboards/boundary_overview.json" } } -} +} \ No newline at end of file diff --git a/btrfs/manifest.json b/btrfs/manifest.json index 429ddf208c97d..51c752e879fad 100644 --- a/btrfs/manifest.json +++ b/btrfs/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Linux", "Supported OS::macOS", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { diff --git a/cacti/manifest.json b/cacti/manifest.json index 2b94fb63a56e7..f8e9181731ee2 100644 --- a/cacti/manifest.json +++ b/cacti/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Developer Tools", "Category::Log Collection", - "Supported OS::Linux" + "Supported OS::Linux", + "Offering::Integration" ] }, "author": { @@ -44,4 +45,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/calico/manifest.json b/calico/manifest.json index 053cbc6da8df0..a1f80b3ca2acb 100644 --- a/calico/manifest.json +++ b/calico/manifest.json @@ -21,7 +21,8 @@ "Category::Security", "Category::Kubernetes", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "author": { @@ -63,4 +64,4 @@ "[calico] monitor dataplane failures": "assets/monitors/dataplane_failures.json" } } -} +} \ No newline at end of file diff --git a/cassandra/manifest.json b/cassandra/manifest.json index b36b01677e41d..57994b74b8c64 100644 --- a/cassandra/manifest.json +++ b/cassandra/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -60,4 +61,4 @@ "cassandra_processes": "assets/saved_views/cassandra_processes.json" } } -} +} \ No newline at end of file diff --git a/cassandra_nodetool/manifest.json b/cassandra_nodetool/manifest.json index 102b463555b20..7416b7229aa88 100644 --- a/cassandra_nodetool/manifest.json +++ b/cassandra_nodetool/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Data Stores" + "Category::Data Stores", + "Offering::Integration" ] }, "author": { diff --git a/ceph/manifest.json b/ceph/manifest.json index 060d3e08c3773..e90e7a9bdba3d 100644 --- a/ceph/manifest.json +++ b/ceph/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Category::Data Stores", "Category::OS & System", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -57,4 +58,4 @@ "ceph_processes": "assets/saved_views/ceph_processes.json" } } -} +} \ No newline at end of file diff --git a/cert_manager/manifest.json b/cert_manager/manifest.json index 16e3197eeb543..ef4c5287d1a6c 100644 --- a/cert_manager/manifest.json +++ b/cert_manager/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Windows", "Category::Security", "Category::Configuration & Deployment", - "Category::Containers" + "Category::Containers", + "Offering::Integration" ] }, "author": { diff --git a/cilium/manifest.json b/cilium/manifest.json index c9821e5b9f1cb..21aaf61a3b894 100644 --- a/cilium/manifest.json +++ b/cilium/manifest.json @@ -18,7 +18,8 @@ "Category::Containers", "Category::Network", "Category::Security", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -57,4 +58,4 @@ "Cilium Overview v2": "assets/dashboards/overview_v2.json" } } -} +} \ No newline at end of file diff --git a/cisco_aci/manifest.json b/cisco_aci/manifest.json index 5057fb5beab2c..42ae9c9136aab 100644 --- a/cisco_aci/manifest.json +++ b/cisco_aci/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "[Cisco ACI] Critical health alert": "assets/monitors/critical_health_score.json" } } -} +} \ No newline at end of file diff --git a/cisco_duo/manifest.json b/cisco_duo/manifest.json index 4e4777d4ab58a..b0eeb55e75cfd 100644 --- a/cisco_duo/manifest.json +++ b/cisco_duo/manifest.json @@ -40,7 +40,8 @@ "classifier_tags": [ "Category::Log Collection", "Category::Security", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -69,4 +70,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/cisco_sdwan/manifest.json b/cisco_sdwan/manifest.json index 7d3175196f68a..d127c37c1d8e8 100644 --- a/cisco_sdwan/manifest.json +++ b/cisco_sdwan/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::Windows", "Supported OS::macOS", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "assets": { @@ -51,4 +52,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/cisco_secure_firewall/manifest.json b/cisco_secure_firewall/manifest.json index bc7ba5bf2e3d2..7159a4199adef 100644 --- a/cisco_secure_firewall/manifest.json +++ b/cisco_secure_firewall/manifest.json @@ -59,7 +59,8 @@ "Category::Network", "Category::Security", "Category::Log Collection", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -100,4 +101,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/cisco_umbrella_dns/manifest.json b/cisco_umbrella_dns/manifest.json index 48c079c353653..33659f5de2200 100644 --- a/cisco_umbrella_dns/manifest.json +++ b/cisco_umbrella_dns/manifest.json @@ -26,7 +26,8 @@ "Category::Log Collection", "Category::Network", "Category::Security", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -52,4 +53,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/citrix_hypervisor/manifest.json b/citrix_hypervisor/manifest.json index e10c72a253c7a..c9b0fe7614a12 100644 --- a/citrix_hypervisor/manifest.json +++ b/citrix_hypervisor/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Cloud", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -50,4 +51,4 @@ "Host CPU high": "assets/monitors/host_cpu_high.json" } } -} +} \ No newline at end of file diff --git a/clickhouse/manifest.json b/clickhouse/manifest.json index 4402093c4ae18..2a676436f7a23 100644 --- a/clickhouse/manifest.json +++ b/clickhouse/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -50,4 +51,4 @@ "ClickHouse Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/cloud_foundry_api/manifest.json b/cloud_foundry_api/manifest.json index 8b32e8f5337d0..a9a36783954f3 100644 --- a/cloud_foundry_api/manifest.json +++ b/cloud_foundry_api/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Cloud", - "Category::Orchestration" + "Category::Orchestration", + "Offering::Integration" ] }, "author": { @@ -44,4 +45,4 @@ } } } -} +} \ No newline at end of file diff --git a/cloudera/manifest.json b/cloudera/manifest.json index 8a0d292370ac1..5736e9a140bbf 100644 --- a/cloudera/manifest.json +++ b/cloudera/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Category::Data Stores", - "Submitted Data Type::Metrics" + "Submitted Data Type::Metrics", + "Offering::Integration" ] }, "assets": { @@ -56,4 +57,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/cockroachdb/manifest.json b/cockroachdb/manifest.json index 70193b8c8333b..a9cd078000486 100644 --- a/cockroachdb/manifest.json +++ b/cockroachdb/manifest.json @@ -20,7 +20,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "author": { @@ -56,4 +57,4 @@ "CockroachDB Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/confluent_platform/manifest.json b/confluent_platform/manifest.json index a656d920e234e..12cafc94661dc 100644 --- a/confluent_platform/manifest.json +++ b/confluent_platform/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "[Confluent Platform] Unused topic partition": "assets/monitors/unused_partition.json" } } -} +} \ No newline at end of file diff --git a/consul/manifest.json b/consul/manifest.json index e0f711cabef3d..96398f26e9265 100644 --- a/consul/manifest.json +++ b/consul/manifest.json @@ -20,7 +20,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -66,4 +67,4 @@ "consul_overview": "assets/saved_views/consul_overview.json" } } -} +} \ No newline at end of file diff --git a/consul_connect/manifest.json b/consul_connect/manifest.json index 00dd88e8cef0f..8951532d5475f 100644 --- a/consul_connect/manifest.json +++ b/consul_connect/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Windows", "Category::Network", "Category::Log Collection", - "Category::Containers" + "Category::Containers", + "Offering::Integration" ] }, "author": { diff --git a/container/manifest.json b/container/manifest.json index e75c0bb92b165..65f531e2f79d5 100644 --- a/container/manifest.json +++ b/container/manifest.json @@ -15,7 +15,8 @@ "Category::Containers", "Category::Kubernetes", "Supported OS::Linux", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { diff --git a/containerd/manifest.json b/containerd/manifest.json index 7edd2b6a3ece2..17e5891cc5b97 100644 --- a/containerd/manifest.json +++ b/containerd/manifest.json @@ -15,7 +15,8 @@ "Category::Containers", "Category::Kubernetes", "Supported OS::Linux", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { diff --git a/coredns/manifest.json b/coredns/manifest.json index b7533d148b16e..2e0f19e549a39 100644 --- a/coredns/manifest.json +++ b/coredns/manifest.json @@ -17,7 +17,8 @@ "Category::Kubernetes", "Category::Log Collection", "Category::Network", - "Supported OS::Linux" + "Supported OS::Linux", + "Offering::Integration" ] }, "author": { @@ -57,4 +58,4 @@ "[CoreDNS] Request duration high": "assets/monitors/coredns_request_duration_high.json" } } -} +} \ No newline at end of file diff --git a/couch/manifest.json b/couch/manifest.json index 24f7957028d94..95c48ab29f57b 100644 --- a/couch/manifest.json +++ b/couch/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -60,4 +61,4 @@ "couchdb_processes": "assets/saved_views/couchdb_processes.json" } } -} +} \ No newline at end of file diff --git a/couchbase/manifest.json b/couchbase/manifest.json index d609facffed2c..6a15e1aa9a4ff 100644 --- a/couchbase/manifest.json +++ b/couchbase/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/cri/manifest.json b/cri/manifest.json index 5ad7e36c2f571..3bbb17ab95f58 100644 --- a/cri/manifest.json +++ b/cri/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Containers", "Category::Kubernetes", - "Supported OS::Linux" + "Supported OS::Linux", + "Offering::Integration" ] }, "author": { diff --git a/crio/manifest.json b/crio/manifest.json index ab2e40056436a..3c3f842330a50 100644 --- a/crio/manifest.json +++ b/crio/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Containers" + "Category::Containers", + "Offering::Integration" ] }, "author": { diff --git a/databricks/manifest.json b/databricks/manifest.json index 38a65385d45c3..b0688910e4bb1 100644 --- a/databricks/manifest.json +++ b/databricks/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ "source": "spark" } } -} +} \ No newline at end of file diff --git a/datadog_cluster_agent/manifest.json b/datadog_cluster_agent/manifest.json index a8d8a73c6f172..7ffea40118fef 100644 --- a/datadog_cluster_agent/manifest.json +++ b/datadog_cluster_agent/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Containers" + "Category::Containers", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "Datadog Cluster Agent - Overview": "assets/dashboards/datadog_cluster_agent_overview.json" } } -} +} \ No newline at end of file diff --git a/datadog_operator/manifest.json b/datadog_operator/manifest.json index fa4e24738a330..0e87de95a3a2d 100644 --- a/datadog_operator/manifest.json +++ b/datadog_operator/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/dcgm/manifest.json b/dcgm/manifest.json index 4295741ea0186..a442d79f3f7df 100644 --- a/dcgm/manifest.json +++ b/dcgm/manifest.json @@ -15,7 +15,8 @@ "Category::AI/ML", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/directory/manifest.json b/directory/manifest.json index 8eae3a53f57e5..65a248c8be683 100644 --- a/directory/manifest.json +++ b/directory/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/disk/manifest.json b/disk/manifest.json index e04970064f775..27b50cee3668e 100644 --- a/disk/manifest.json +++ b/disk/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/dns_check/manifest.json b/dns_check/manifest.json index 5aa6dfe153e3c..6fd3bf929f95f 100644 --- a/dns_check/manifest.json +++ b/dns_check/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/docker_daemon/manifest.json b/docker_daemon/manifest.json index 947e0363bcd6d..cebe0aa294928 100644 --- a/docker_daemon/manifest.json +++ b/docker_daemon/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Category::Containers", "Category::Log Collection", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "author": { @@ -51,4 +52,4 @@ } } } -} +} \ No newline at end of file diff --git a/dotnetclr/manifest.json b/dotnetclr/manifest.json index 066f9ffa5bda2..6711c4d6ab313 100644 --- a/dotnetclr/manifest.json +++ b/dotnetclr/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Windows", - "Category::Languages" + "Category::Languages", + "Offering::Integration" ] }, "author": { diff --git a/druid/manifest.json b/druid/manifest.json index 30b66300018db..26428803d0437 100644 --- a/druid/manifest.json +++ b/druid/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -50,4 +51,4 @@ "Druid Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/ecs_fargate/manifest.json b/ecs_fargate/manifest.json index c9f073d21abfc..d1bd069835764 100644 --- a/ecs_fargate/manifest.json +++ b/ecs_fargate/manifest.json @@ -21,7 +21,8 @@ "Category::Tracing", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/eks_anywhere/manifest.json b/eks_anywhere/manifest.json index 3e901f0b93d44..d58f286d3d704 100644 --- a/eks_anywhere/manifest.json +++ b/eks_anywhere/manifest.json @@ -21,7 +21,8 @@ "Category::Provisioning", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/eks_fargate/manifest.json b/eks_fargate/manifest.json index 89825b37c0a0b..b7aae6ee9e335 100644 --- a/eks_fargate/manifest.json +++ b/eks_fargate/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Windows", "Category::Cloud", "Category::AWS", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -45,4 +46,4 @@ } } } -} +} \ No newline at end of file diff --git a/elastic/manifest.json b/elastic/manifest.json index a8251fc22428c..0b5107c107aa7 100644 --- a/elastic/manifest.json +++ b/elastic/manifest.json @@ -21,7 +21,8 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Submitted Data Type::Traces", - "Submitted Data Type::Events" + "Submitted Data Type::Events", + "Offering::Integration" ] }, "author": { @@ -69,4 +70,4 @@ "elasticsearch_processes": "assets/saved_views/elasticsearch_processes.json" } } -} +} \ No newline at end of file diff --git a/envoy/manifest.json b/envoy/manifest.json index a54039acc559e..415f8120039f6 100644 --- a/envoy/manifest.json +++ b/envoy/manifest.json @@ -19,7 +19,8 @@ "Supported OS::macOS", "Category::Network", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "author": { @@ -65,4 +66,4 @@ "envoy_error_grouped": "assets/saved_views/envoy_error_grouped.json" } } -} +} \ No newline at end of file diff --git a/etcd/manifest.json b/etcd/manifest.json index aa0eedb7bea9c..8e45bc84b49bb 100644 --- a/etcd/manifest.json +++ b/etcd/manifest.json @@ -18,7 +18,8 @@ "Category::Orchestration", "Category::Containers", "Category::Configuration & Deployment", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -62,4 +63,4 @@ "etcd_processes": "assets/saved_views/etcd_processes.json" } } -} +} \ No newline at end of file diff --git a/exchange_server/manifest.json b/exchange_server/manifest.json index 7ef5855c376f2..874a25c77ed96 100644 --- a/exchange_server/manifest.json +++ b/exchange_server/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Category::Log Collection", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { @@ -46,4 +47,4 @@ "Exchange Server Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/external_dns/manifest.json b/external_dns/manifest.json index d859d0354ffa8..945ff18687ba1 100644 --- a/external_dns/manifest.json +++ b/external_dns/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "author": { @@ -45,4 +46,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/flink/manifest.json b/flink/manifest.json index 8c4f2286c2d08..256d414cf89e9 100644 --- a/flink/manifest.json +++ b/flink/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -63,4 +64,4 @@ "Flink Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/fluentd/manifest.json b/fluentd/manifest.json index 51e4d6abe88bf..680662f237ef3 100644 --- a/fluentd/manifest.json +++ b/fluentd/manifest.json @@ -16,7 +16,8 @@ "Supported OS::Windows", "Category::Log Collection", "Category::Metrics", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/fluxcd/manifest.json b/fluxcd/manifest.json index 1230265582ab2..a11346e8199d8 100644 --- a/fluxcd/manifest.json +++ b/fluxcd/manifest.json @@ -18,7 +18,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "author": { @@ -65,4 +66,4 @@ "flux_errors": "assets/saved_views/errors.json" } } -} +} \ No newline at end of file diff --git a/foundationdb/manifest.json b/foundationdb/manifest.json index 9d09238d9288a..1df8225331f76 100644 --- a/foundationdb/manifest.json +++ b/foundationdb/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -71,4 +72,4 @@ "all": "assets/saved_views/all.json" } } -} +} \ No newline at end of file diff --git a/gearmand/manifest.json b/gearmand/manifest.json index 274cc27e6bb73..9f64990bac29f 100644 --- a/gearmand/manifest.json +++ b/gearmand/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Log Collection", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -54,4 +55,4 @@ "gearman_processes": "assets/saved_views/gearman_processes.json" } } -} +} \ No newline at end of file diff --git a/gitlab/manifest.json b/gitlab/manifest.json index 63db30941a245..6cc66ff60b970 100644 --- a/gitlab/manifest.json +++ b/gitlab/manifest.json @@ -21,7 +21,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "author": { @@ -62,4 +63,4 @@ "Gitlab Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/gitlab_runner/manifest.json b/gitlab_runner/manifest.json index 99fcbcd36a774..935bd6186dac5 100644 --- a/gitlab_runner/manifest.json +++ b/gitlab_runner/manifest.json @@ -18,7 +18,8 @@ "Category::Collaboration", "Category::Source Control", "Category::Issue Tracking", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/gke/manifest.json b/gke/manifest.json index f520f3b911c8d..0cb241e9a5890 100644 --- a/gke/manifest.json +++ b/gke/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Containers", - "Category::Orchestration" + "Category::Orchestration", + "Offering::Integration" ] }, "author": { @@ -39,4 +40,4 @@ } } } -} +} \ No newline at end of file diff --git a/glusterfs/manifest.json b/glusterfs/manifest.json index 9e9a6f028cb2f..5d498bc6574c7 100644 --- a/glusterfs/manifest.json +++ b/glusterfs/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Linux", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -57,4 +58,4 @@ "glusterfs_processes": "assets/saved_views/glusterfs_processes.json" } } -} +} \ No newline at end of file diff --git a/go-metro/manifest.json b/go-metro/manifest.json index 65116066b89c8..fdbad1ad78784 100644 --- a/go-metro/manifest.json +++ b/go-metro/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Linux", - "Category::Languages" + "Category::Languages", + "Offering::Integration" ] }, "author": { @@ -41,4 +42,4 @@ } } } -} +} \ No newline at end of file diff --git a/go_expvar/manifest.json b/go_expvar/manifest.json index 057920eac4bf3..541c880cdee07 100644 --- a/go_expvar/manifest.json +++ b/go_expvar/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Languages" + "Category::Languages", + "Offering::Integration" ] }, "author": { diff --git a/gunicorn/manifest.json b/gunicorn/manifest.json index 2dd4329fb072a..7386020061801 100644 --- a/gunicorn/manifest.json +++ b/gunicorn/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Log Collection", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -57,4 +58,4 @@ "gunicorn_processes": "assets/saved_views/gunicorn_processes.json" } } -} +} \ No newline at end of file diff --git a/haproxy/manifest.json b/haproxy/manifest.json index 3606cc25aea57..cad69bef849d7 100644 --- a/haproxy/manifest.json +++ b/haproxy/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -80,4 +81,4 @@ "haproxy_processes": "assets/saved_views/haproxy_processes.json" } } -} +} \ No newline at end of file diff --git a/harbor/manifest.json b/harbor/manifest.json index 9219b96fd804e..6e49cdd198174 100644 --- a/harbor/manifest.json +++ b/harbor/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Containers", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -49,4 +50,4 @@ "Harbor Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/hazelcast/manifest.json b/hazelcast/manifest.json index c0e9a0fe41acb..406fe3a8a250c 100644 --- a/hazelcast/manifest.json +++ b/hazelcast/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Windows", "Category::Data Stores", "Category::Caching", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -53,4 +54,4 @@ "Hazelcast Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/hdfs_datanode/manifest.json b/hdfs_datanode/manifest.json index 32bf6701212ea..bdbe5381459bc 100644 --- a/hdfs_datanode/manifest.json +++ b/hdfs_datanode/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Category::OS & System", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "hdfs_datanode": "assets/dashboards/hdfs_datanode_dashboard.json" } } -} +} \ No newline at end of file diff --git a/hdfs_namenode/manifest.json b/hdfs_namenode/manifest.json index 12f96a813f314..54321788f4620 100644 --- a/hdfs_namenode/manifest.json +++ b/hdfs_namenode/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Category::OS & System", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "hdfs_namenode": "assets/dashboards/hdfs_namenode_dashboard.json" } } -} +} \ No newline at end of file diff --git a/helm/manifest.json b/helm/manifest.json index 438a7026bcd8c..41853359abcfe 100644 --- a/helm/manifest.json +++ b/helm/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Configuration & Deployment", - "Category::Containers" + "Category::Containers", + "Offering::Integration" ] }, "author": { diff --git a/hive/manifest.json b/hive/manifest.json index 67ea671da2517..0de5ea8b97ee0 100644 --- a/hive/manifest.json +++ b/hive/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "Hive Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/hivemq/manifest.json b/hivemq/manifest.json index 37cd0ccfac884..0e63d45f094b0 100644 --- a/hivemq/manifest.json +++ b/hivemq/manifest.json @@ -17,7 +17,8 @@ "Category::Message Queues", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -50,4 +51,4 @@ "HiveMQ": "assets/dashboards/hivemq.json" } } -} +} \ No newline at end of file diff --git a/http_check/manifest.json b/http_check/manifest.json index a8bf3f8d05e80..fc26ab516b9dd 100644 --- a/http_check/manifest.json +++ b/http_check/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/hudi/manifest.json b/hudi/manifest.json index ad8ed0aa354c4..a74c50e5da3b1 100644 --- a/hudi/manifest.json +++ b/hudi/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -56,4 +57,4 @@ "hudi_patterns": "assets/saved_views/hudi_patterns.json" } } -} +} \ No newline at end of file diff --git a/hyperv/manifest.json b/hyperv/manifest.json index 4de3992ad3f44..6b5b27549e390 100644 --- a/hyperv/manifest.json +++ b/hyperv/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Cloud", "Category::OS & System", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { diff --git a/iam_access_analyzer/manifest.json b/iam_access_analyzer/manifest.json index 5d93102f39214..e11cee4dec66b 100644 --- a/iam_access_analyzer/manifest.json +++ b/iam_access_analyzer/manifest.json @@ -15,7 +15,8 @@ "Category::Security", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/ibm_ace/manifest.json b/ibm_ace/manifest.json index 02681ebb23cca..d119591883f7d 100644 --- a/ibm_ace/manifest.json +++ b/ibm_ace/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "IBM ACE Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/ibm_db2/manifest.json b/ibm_db2/manifest.json index 9637b2a2cf4bb..c0ca782875e54 100644 --- a/ibm_db2/manifest.json +++ b/ibm_db2/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -49,4 +50,4 @@ "IBM Db2 Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/ibm_i/manifest.json b/ibm_i/manifest.json index 112b88813a5e1..469c00af2d70d 100644 --- a/ibm_i/manifest.json +++ b/ibm_i/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Linux", "Supported OS::macOS", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { diff --git a/ibm_mq/manifest.json b/ibm_mq/manifest.json index 4c503b4973965..879f9dd7be1d2 100644 --- a/ibm_mq/manifest.json +++ b/ibm_mq/manifest.json @@ -17,7 +17,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -50,4 +51,4 @@ "IBM MQ": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/ibm_was/manifest.json b/ibm_was/manifest.json index 8affb77e0c3bd..2fc840551da5c 100644 --- a/ibm_was/manifest.json +++ b/ibm_was/manifest.json @@ -16,7 +16,8 @@ "Category::OS & System", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -49,4 +50,4 @@ "IBM_WAS": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/ignite/manifest.json b/ignite/manifest.json index 86a2344c45861..fd9043e66c412 100644 --- a/ignite/manifest.json +++ b/ignite/manifest.json @@ -18,7 +18,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -51,4 +52,4 @@ "Ignite Overview": "assets/dashboards/ignite_overview.json" } } -} +} \ No newline at end of file diff --git a/iis/manifest.json b/iis/manifest.json index ca1f0ca6e9ae0..8548e13b591ed 100644 --- a/iis/manifest.json +++ b/iis/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Category::Log Collection", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { @@ -59,4 +60,4 @@ "response_time_overview": "assets/saved_views/response_time.json" } } -} +} \ No newline at end of file diff --git a/impala/manifest.json b/impala/manifest.json index e70e6d5ab2943..c4af23271aadc 100644 --- a/impala/manifest.json +++ b/impala/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::Windows", "Supported OS::macOS", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "assets": { @@ -56,4 +57,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/istio/manifest.json b/istio/manifest.json index 268a4d1f24afe..8baa839adbf1f 100644 --- a/istio/manifest.json +++ b/istio/manifest.json @@ -20,7 +20,8 @@ "Supported OS::macOS", "Submitted Data Type::Metrics", "Submitted Data Type::Logs", - "Submitted Data Type::Traces" + "Submitted Data Type::Traces", + "Offering::Integration" ] }, "author": { @@ -77,4 +78,4 @@ "Istio Proxyv2 Error Logs": "assets/saved_views/istio_proxyv2_errors.json" } } -} +} \ No newline at end of file diff --git a/jboss_wildfly/manifest.json b/jboss_wildfly/manifest.json index efec716bacdd7..b714c53108406 100644 --- a/jboss_wildfly/manifest.json +++ b/jboss_wildfly/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "JBoss WildFly": "assets/dashboards/jboss_wildfly.json" } } -} +} \ No newline at end of file diff --git a/jmeter/manifest.json b/jmeter/manifest.json index 3c867060a732b..591e0c57baef0 100644 --- a/jmeter/manifest.json +++ b/jmeter/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Log Collection", - "Category::Testing" + "Category::Testing", + "Offering::Integration" ] }, "author": { @@ -47,4 +48,4 @@ "JMeter Overview": "assets/dashboards/JMeterOverview.json" } } -} +} \ No newline at end of file diff --git a/journald/manifest.json b/journald/manifest.json index 1a93a14e1c507..64f1acf9e8ddd 100644 --- a/journald/manifest.json +++ b/journald/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { diff --git a/kafka/manifest.json b/kafka/manifest.json index f79b6ff211475..1f48fc3759f1b 100644 --- a/kafka/manifest.json +++ b/kafka/manifest.json @@ -18,7 +18,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "author": { @@ -68,4 +69,4 @@ "kafka_processes": "assets/saved_views/kafka_processes.json" } } -} +} \ No newline at end of file diff --git a/kafka_consumer/manifest.json b/kafka_consumer/manifest.json index 6c517a473151e..7fb0239e9cd02 100644 --- a/kafka_consumer/manifest.json +++ b/kafka_consumer/manifest.json @@ -15,7 +15,8 @@ "Category::Message Queues", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/karpenter/manifest.json b/karpenter/manifest.json index 6ac6fb0a03bd5..d691f06a7e87d 100644 --- a/karpenter/manifest.json +++ b/karpenter/manifest.json @@ -20,7 +20,8 @@ "Category::Log Collection", "Category::Provisioning", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -60,4 +61,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/kong/manifest.json b/kong/manifest.json index 3b75ad4ebf102..27c9f61b21a9b 100644 --- a/kong/manifest.json +++ b/kong/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -60,4 +61,4 @@ "kong_processes": "assets/saved_views/kong_processes.json" } } -} +} \ No newline at end of file diff --git a/kube_apiserver_metrics/manifest.json b/kube_apiserver_metrics/manifest.json index 7e6f0dbae0891..3aa61c8a0ac6a 100644 --- a/kube_apiserver_metrics/manifest.json +++ b/kube_apiserver_metrics/manifest.json @@ -16,7 +16,8 @@ "Category::Kubernetes", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/kube_controller_manager/manifest.json b/kube_controller_manager/manifest.json index 12715edd83de7..ab1b6abc784ac 100644 --- a/kube_controller_manager/manifest.json +++ b/kube_controller_manager/manifest.json @@ -17,7 +17,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/kube_dns/manifest.json b/kube_dns/manifest.json index f0bb51213502f..c378c1164ab03 100644 --- a/kube_dns/manifest.json +++ b/kube_dns/manifest.json @@ -17,7 +17,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/kube_metrics_server/manifest.json b/kube_metrics_server/manifest.json index cc1d339c23d50..cb83bdca493b6 100644 --- a/kube_metrics_server/manifest.json +++ b/kube_metrics_server/manifest.json @@ -17,7 +17,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/kube_proxy/manifest.json b/kube_proxy/manifest.json index 511828906aeb1..7c4f42ea11b23 100644 --- a/kube_proxy/manifest.json +++ b/kube_proxy/manifest.json @@ -17,7 +17,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/kube_scheduler/manifest.json b/kube_scheduler/manifest.json index 6014b7e7683b0..a163e2951de8d 100644 --- a/kube_scheduler/manifest.json +++ b/kube_scheduler/manifest.json @@ -18,7 +18,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -51,4 +52,4 @@ "kube_scheduler": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/kubelet/manifest.json b/kubelet/manifest.json index ead726228437a..d33b35d11fa96 100644 --- a/kubelet/manifest.json +++ b/kubelet/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Containers" + "Category::Containers", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/kubernetes/manifest.json b/kubernetes/manifest.json index def9bf1f537e8..933424e32bbbb 100644 --- a/kubernetes/manifest.json +++ b/kubernetes/manifest.json @@ -18,7 +18,8 @@ "Category::Network", "Category::Orchestration", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/kubernetes_cluster_autoscaler/manifest.json b/kubernetes_cluster_autoscaler/manifest.json index 0cdc0f712ba8f..871930f3f5cf9 100644 --- a/kubernetes_cluster_autoscaler/manifest.json +++ b/kubernetes_cluster_autoscaler/manifest.json @@ -17,7 +17,8 @@ "Supported OS::macOS", "Category::Metrics", "Category::Kubernetes", - "Submitted Data Type::Metrics" + "Submitted Data Type::Metrics", + "Offering::Integration" ] }, "assets": { @@ -39,10 +40,10 @@ "service_checks": { "metadata_path": "assets/service_checks.json" }, - "process_signatures": [ - "cluster-autoscaler" - ] - }, + "process_signatures": [ + "cluster-autoscaler" + ] + }, "dashboards": { "Kubernetes Cluster Autoscaler Overview": "assets/dashboards/kubernetes_cluster_autoscaler_overview.json" }, diff --git a/kubernetes_state/manifest.json b/kubernetes_state/manifest.json index 065dc584739c1..5baf03240673a 100644 --- a/kubernetes_state/manifest.json +++ b/kubernetes_state/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Orchestration", - "Category::Containers" + "Category::Containers", + "Offering::Integration" ] }, "author": { @@ -44,4 +45,4 @@ } } } -} +} \ No newline at end of file diff --git a/kubernetes_state_core/manifest.json b/kubernetes_state_core/manifest.json index eb37fd4e42520..aecd760b0d280 100644 --- a/kubernetes_state_core/manifest.json +++ b/kubernetes_state_core/manifest.json @@ -16,7 +16,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::macOS", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { @@ -44,4 +45,4 @@ } } } -} +} \ No newline at end of file diff --git a/kyototycoon/manifest.json b/kyototycoon/manifest.json index 0e436ff0b8db0..f7c854da92fc4 100644 --- a/kyototycoon/manifest.json +++ b/kyototycoon/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -55,4 +56,4 @@ "kyoto-tycoon_processes": "assets/saved_views/kyoto-tycoon_processes.json" } } -} +} \ No newline at end of file diff --git a/kyverno/manifest.json b/kyverno/manifest.json index 3af80705f91c1..fae35627713d4 100644 --- a/kyverno/manifest.json +++ b/kyverno/manifest.json @@ -18,7 +18,8 @@ "Category::Metrics", "Category::Kubernetes", "Category::Security", - "Submitted Data Type::Metrics" + "Submitted Data Type::Metrics", + "Offering::Integration" ] }, "assets": { @@ -49,4 +50,4 @@ "sales_email": "info@datadoghq.com" }, "oauth": {} -} +} \ No newline at end of file diff --git a/langchain/manifest.json b/langchain/manifest.json index d6915c9009967..4a352abb4d2f2 100644 --- a/langchain/manifest.json +++ b/langchain/manifest.json @@ -20,7 +20,8 @@ "Submitted Data Type::Traces", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { @@ -55,4 +56,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/lighttpd/manifest.json b/lighttpd/manifest.json index 648359e3686e9..d0f499e0a4a87 100644 --- a/lighttpd/manifest.json +++ b/lighttpd/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -54,4 +55,4 @@ "lighttpd_processes": "assets/saved_views/lighttpd_processes.json" } } -} +} \ No newline at end of file diff --git a/linkerd/manifest.json b/linkerd/manifest.json index e2eafb61b7931..2a78770ff9bda 100644 --- a/linkerd/manifest.json +++ b/linkerd/manifest.json @@ -16,7 +16,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/linux_proc_extras/manifest.json b/linux_proc_extras/manifest.json index deb2c49b26175..0f556989e26ee 100644 --- a/linux_proc_extras/manifest.json +++ b/linux_proc_extras/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Linux", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { @@ -41,4 +42,4 @@ } } } -} +} \ No newline at end of file diff --git a/mapr/manifest.json b/mapr/manifest.json index 1706896087f33..3f9cb782841a6 100644 --- a/mapr/manifest.json +++ b/mapr/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Data Stores", "Category::Log Collection", - "Supported OS::Linux" + "Supported OS::Linux", + "Offering::Integration" ] }, "author": { @@ -47,4 +48,4 @@ "MapR - Overview": "assets/dashboards/mapr_overview.json" } } -} +} \ No newline at end of file diff --git a/mapreduce/manifest.json b/mapreduce/manifest.json index 31ab77d8c65b8..42b1a453c0ef9 100644 --- a/mapreduce/manifest.json +++ b/mapreduce/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "mapreduce": "assets/dashboards/mapreduce_dashboard.json" } } -} +} \ No newline at end of file diff --git a/marathon/manifest.json b/marathon/manifest.json index e9cc11395e854..36317eb9ee1aa 100644 --- a/marathon/manifest.json +++ b/marathon/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Category::Configuration & Deployment", "Category::Containers", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -55,4 +56,4 @@ "marathon_processes": "assets/saved_views/marathon_processes.json" } } -} +} \ No newline at end of file diff --git a/marklogic/manifest.json b/marklogic/manifest.json index e6028a59f24cd..fbb1e400587cc 100644 --- a/marklogic/manifest.json +++ b/marklogic/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -60,4 +61,4 @@ "marklogic_processes": "assets/saved_views/marklogic_processes.json" } } -} +} \ No newline at end of file diff --git a/mcache/manifest.json b/mcache/manifest.json index 06c9fe74b0344..8f507124cc4d2 100644 --- a/mcache/manifest.json +++ b/mcache/manifest.json @@ -16,7 +16,8 @@ "Category::Log Collection", "Category::Tracing", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -56,4 +57,4 @@ "memcached_processes": "assets/saved_views/memcached_processes.json" } } -} +} \ No newline at end of file diff --git a/mesos_master/manifest.json b/mesos_master/manifest.json index 8a7f32b0f7524..22f321698d10f 100644 --- a/mesos_master/manifest.json +++ b/mesos_master/manifest.json @@ -17,7 +17,8 @@ "Category::Configuration & Deployment", "Category::Containers", "Category::Orchestration", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { diff --git a/mesos_slave/manifest.json b/mesos_slave/manifest.json index f51c2012b64e5..b0b4de278cd38 100644 --- a/mesos_slave/manifest.json +++ b/mesos_slave/manifest.json @@ -18,7 +18,8 @@ "Category::Network", "Category::Orchestration", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -51,4 +52,4 @@ "mesos": "assets/dashboards/mesos_overview.json" } } -} +} \ No newline at end of file diff --git a/mongo/manifest.json b/mongo/manifest.json index e413e347a6862..3347f1b3b7bd8 100644 --- a/mongo/manifest.json +++ b/mongo/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -62,4 +63,4 @@ "mongodb_processes": "assets/saved_views/mongodb_processes.json" } } -} +} \ No newline at end of file diff --git a/mysql/manifest.json b/mysql/manifest.json index 000e84ecc3d6c..9d261e1e6b2d9 100644 --- a/mysql/manifest.json +++ b/mysql/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -63,4 +64,4 @@ "mysql_processes": "assets/saved_views/mysql_processes.json" } } -} +} \ No newline at end of file diff --git a/nagios/manifest.json b/nagios/manifest.json index d48ed866c108d..74d1f64a7ea37 100644 --- a/nagios/manifest.json +++ b/nagios/manifest.json @@ -16,7 +16,8 @@ "Category::Notifications", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "nagios_processes": "assets/saved_views/nagios_processes.json" } } -} +} \ No newline at end of file diff --git a/network/manifest.json b/network/manifest.json index ba46c8d919fbe..26808ccb2b5c2 100644 --- a/network/manifest.json +++ b/network/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/nfsstat/manifest.json b/nfsstat/manifest.json index bd05cd7ce3eeb..08a4a4fb3209a 100644 --- a/nfsstat/manifest.json +++ b/nfsstat/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Linux", "Category::OS & System", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -44,4 +45,4 @@ } } } -} +} \ No newline at end of file diff --git a/nginx/manifest.json b/nginx/manifest.json index dca7b9a99926b..c182e8b8a37f6 100644 --- a/nginx/manifest.json +++ b/nginx/manifest.json @@ -16,7 +16,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -69,4 +70,4 @@ "nginx_processes": "assets/saved_views/nginx_processes.json" } } -} +} \ No newline at end of file diff --git a/nginx_ingress_controller/manifest.json b/nginx_ingress_controller/manifest.json index 19c501041f8d6..936ffc3e30286 100644 --- a/nginx_ingress_controller/manifest.json +++ b/nginx_ingress_controller/manifest.json @@ -19,7 +19,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -58,4 +59,4 @@ "bot_errors": "assets/saved_views/bot_errors.json" } } -} +} \ No newline at end of file diff --git a/ntp/manifest.json b/ntp/manifest.json index 09a405dc70e27..25671801bb026 100644 --- a/ntp/manifest.json +++ b/ntp/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "author": { @@ -41,4 +42,4 @@ } } } -} +} \ No newline at end of file diff --git a/nvidia_jetson/manifest.json b/nvidia_jetson/manifest.json index 73ff2a2f72071..19538aad372c5 100644 --- a/nvidia_jetson/manifest.json +++ b/nvidia_jetson/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Linux", - "Category::IoT" + "Category::IoT", + "Offering::Integration" ] }, "author": { diff --git a/nvidia_triton/manifest.json b/nvidia_triton/manifest.json index bff3894054b0a..0a6b732e89a6b 100644 --- a/nvidia_triton/manifest.json +++ b/nvidia_triton/manifest.json @@ -17,7 +17,8 @@ "Supported OS::macOS", "Category::Log Collection", "Category::AI/ML", - "Submitted Data Type::Metrics" + "Submitted Data Type::Metrics", + "Offering::Integration" ] }, "assets": { @@ -57,4 +58,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/oke/manifest.json b/oke/manifest.json index 3a61af3a04929..c64f8bd17d369 100644 --- a/oke/manifest.json +++ b/oke/manifest.json @@ -18,7 +18,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/oom_kill/manifest.json b/oom_kill/manifest.json index 3ab573f0bb3aa..0b19c1f559770 100644 --- a/oom_kill/manifest.json +++ b/oom_kill/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Linux", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { diff --git a/openai/manifest.json b/openai/manifest.json index b0bce92fcad0a..c2568d1b04c30 100644 --- a/openai/manifest.json +++ b/openai/manifest.json @@ -36,7 +36,8 @@ "Submitted Data Type::Traces", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/openldap/manifest.json b/openldap/manifest.json index 509cb055cf2f5..ad1c3b547ecb5 100644 --- a/openldap/manifest.json +++ b/openldap/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -49,4 +50,4 @@ "OpenLDAP Overview": "assets/dashboards/openldap_overview.json" } } -} +} \ No newline at end of file diff --git a/openmetrics/manifest.json b/openmetrics/manifest.json index f028f53e6d2e4..b378835a7ef13 100644 --- a/openmetrics/manifest.json +++ b/openmetrics/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::Windows", "Category::Metrics", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/openshift/manifest.json b/openshift/manifest.json index c49401b2573af..57029783618b2 100644 --- a/openshift/manifest.json +++ b/openshift/manifest.json @@ -18,7 +18,8 @@ "Category::Network", "Category::Orchestration", "Category::Provisioning", - "Supported OS::Linux" + "Supported OS::Linux", + "Offering::Integration" ] }, "author": { diff --git a/openstack/manifest.json b/openstack/manifest.json index fa9670d5d1a47..1f03a8f9b7bc7 100644 --- a/openstack/manifest.json +++ b/openstack/manifest.json @@ -21,7 +21,8 @@ "Category::Provisioning", "Category::Configuration & Deployment", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "author": { @@ -60,4 +61,4 @@ "openstack_processes": "assets/saved_views/openstack_processes.json" } } -} +} \ No newline at end of file diff --git a/openstack_controller/manifest.json b/openstack_controller/manifest.json index 40724b2f69d0a..d2b7071e62202 100644 --- a/openstack_controller/manifest.json +++ b/openstack_controller/manifest.json @@ -21,7 +21,8 @@ "Category::Orchestration", "Category::Configuration & Deployment", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "author": { @@ -58,4 +59,4 @@ "source": "openstack" } } -} +} \ No newline at end of file diff --git a/oracle/manifest.json b/oracle/manifest.json index 20bd42ee33b9b..1d810932015b3 100644 --- a/oracle/manifest.json +++ b/oracle/manifest.json @@ -17,7 +17,8 @@ "Category::Oracle", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/otel/manifest.json b/otel/manifest.json index 641e6a1655e0e..253c604c9f411 100644 --- a/otel/manifest.json +++ b/otel/manifest.json @@ -17,7 +17,8 @@ "Category::OS & System", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/pan_firewall/manifest.json b/pan_firewall/manifest.json index 8cd2ab320b833..e41529395a897 100644 --- a/pan_firewall/manifest.json +++ b/pan_firewall/manifest.json @@ -18,7 +18,8 @@ "Category::Security", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -50,4 +51,4 @@ "Authentication Protocol": "assets/saved_views/top_ips_flagged_in_high_severity_threats.json" } } -} +} \ No newline at end of file diff --git a/pdh_check/manifest.json b/pdh_check/manifest.json index e6ddf2f121187..d0513e7606aa1 100644 --- a/pdh_check/manifest.json +++ b/pdh_check/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { diff --git a/pgbouncer/manifest.json b/pgbouncer/manifest.json index 24edf18698954..63ea2881bfb53 100644 --- a/pgbouncer/manifest.json +++ b/pgbouncer/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -57,4 +58,4 @@ "pgbouncer_processes": "assets/saved_views/pgbouncer_processes.json" } } -} +} \ No newline at end of file diff --git a/php_fpm/manifest.json b/php_fpm/manifest.json index ca64ef5eacd4d..b09e06590376c 100644 --- a/php_fpm/manifest.json +++ b/php_fpm/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::Windows", "Category::Metrics", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/ping_one/manifest.json b/ping_one/manifest.json index 26cc174880ff9..ac0ad3b0d06d9 100644 --- a/ping_one/manifest.json +++ b/ping_one/manifest.json @@ -1,40 +1,41 @@ { - "manifest_version": "2.0.0", - "app_uuid": "5fce4e84-ab6e-4ba6-b996-ac85e134642e", - "app_id": "ping-one", - "display_on_public_website": false, - "tile": { - "overview": "README.md#Overview", - "configuration": "README.md#Setup", - "support": "README.md#Support", - "changelog": "CHANGELOG.md", - "description": "Gain insights into PingOne logs", - "title": "ping_one", - "media": [], - "classifier_tags": [ - "Category::Log Collection", - "Category::Security", - "Submitted Data Type::Logs" - ] - }, - "assets": { - "integration": { - "auto_install": false, - "source_type_id": 18081106, - "source_type_name": "PingOne", - "events": { - "creates_events": false - }, - "service_checks": { - "metadata_path": "assets/service_checks.json" - } - } - }, - "author": { - "support_email": "help@datadoghq.com", - "name": "Datadog", - "homepage": "https://www.datadoghq.com", - "sales_email": "info@datadoghq.com" - }, - "oauth": {} + "manifest_version": "2.0.0", + "app_uuid": "5fce4e84-ab6e-4ba6-b996-ac85e134642e", + "app_id": "ping-one", + "display_on_public_website": false, + "tile": { + "overview": "README.md#Overview", + "configuration": "README.md#Setup", + "support": "README.md#Support", + "changelog": "CHANGELOG.md", + "description": "Gain insights into PingOne logs", + "title": "ping_one", + "media": [], + "classifier_tags": [ + "Category::Log Collection", + "Category::Security", + "Submitted Data Type::Logs", + "Offering::Integration" + ] + }, + "assets": { + "integration": { + "auto_install": false, + "source_type_id": 18081106, + "source_type_name": "PingOne", + "events": { + "creates_events": false + }, + "service_checks": { + "metadata_path": "assets/service_checks.json" + } + } + }, + "author": { + "support_email": "help@datadoghq.com", + "name": "Datadog", + "homepage": "https://www.datadoghq.com", + "sales_email": "info@datadoghq.com" + }, + "oauth": {} } \ No newline at end of file diff --git a/pivotal_pks/manifest.json b/pivotal_pks/manifest.json index f257af1e2d497..8b9297e068296 100644 --- a/pivotal_pks/manifest.json +++ b/pivotal_pks/manifest.json @@ -18,7 +18,8 @@ "Category::Network", "Category::Orchestration", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/podman/manifest.json b/podman/manifest.json index 0289f10a23b0d..a22873761a95b 100644 --- a/podman/manifest.json +++ b/podman/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Linux", - "Category::Containers" + "Category::Containers", + "Offering::Integration" ] }, "author": { diff --git a/postfix/manifest.json b/postfix/manifest.json index 6e47170f4364f..59e2f98a62c5e 100644 --- a/postfix/manifest.json +++ b/postfix/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Log Collection", "Supported OS::Linux", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -54,4 +55,4 @@ "postfix_processes": "assets/saved_views/postfix_processes.json" } } -} +} \ No newline at end of file diff --git a/postgres/manifest.json b/postgres/manifest.json index 791c3a3313406..270329518877c 100644 --- a/postgres/manifest.json +++ b/postgres/manifest.json @@ -18,7 +18,8 @@ "Category::Tracing", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -71,4 +72,4 @@ "postgres_processes": "assets/saved_views/postgres_processes.json" } } -} +} \ No newline at end of file diff --git a/powerdns_recursor/manifest.json b/powerdns_recursor/manifest.json index f5754750ba774..da8d8b1cc92e4 100644 --- a/powerdns_recursor/manifest.json +++ b/powerdns_recursor/manifest.json @@ -17,7 +17,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -57,4 +58,4 @@ "powerdns_processes": "assets/saved_views/powerdns_processes.json" } } -} +} \ No newline at end of file diff --git a/presto/manifest.json b/presto/manifest.json index 9569baf67e108..d8eeb137e0816 100644 --- a/presto/manifest.json +++ b/presto/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -56,4 +57,4 @@ "response_time_overview": "assets/saved_views/response_time.json" } } -} +} \ No newline at end of file diff --git a/process/manifest.json b/process/manifest.json index be5c05a3235a7..ea7d491ec6a50 100644 --- a/process/manifest.json +++ b/process/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/prometheus/manifest.json b/prometheus/manifest.json index f426a341b3427..e922cb1c9f609 100644 --- a/prometheus/manifest.json +++ b/prometheus/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::Windows", "Category::Metrics", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/proxysql/manifest.json b/proxysql/manifest.json index 998a0a40a4c09..ab1e7a69c55bd 100644 --- a/proxysql/manifest.json +++ b/proxysql/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Windows", "Category::Data Stores", "Category::Log Collection", - "Category::Caching" + "Category::Caching", + "Offering::Integration" ] }, "author": { @@ -50,4 +51,4 @@ "ProxySQL Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/pulsar/manifest.json b/pulsar/manifest.json index c4707290f3587..66048f7bdb7d4 100644 --- a/pulsar/manifest.json +++ b/pulsar/manifest.json @@ -16,7 +16,8 @@ "Category::Message Queues", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -49,4 +50,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/rabbitmq/manifest.json b/rabbitmq/manifest.json index 7583b1f02fc4b..9fc3fc502b9ef 100644 --- a/rabbitmq/manifest.json +++ b/rabbitmq/manifest.json @@ -16,7 +16,8 @@ "Category::Message Queues", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -67,4 +68,4 @@ "rabbitmq_processes": "assets/saved_views/rabbitmq_processes.json" } } -} +} \ No newline at end of file diff --git a/ray/manifest.json b/ray/manifest.json index e26c5e4529509..c60d4cbd237a2 100644 --- a/ray/manifest.json +++ b/ray/manifest.json @@ -18,7 +18,8 @@ "Category::AI/ML", "Category::Log Collection", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -62,4 +63,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/redisdb/manifest.json b/redisdb/manifest.json index ffa1062367ed9..21c9b01b5b926 100644 --- a/redisdb/manifest.json +++ b/redisdb/manifest.json @@ -18,7 +18,8 @@ "Category::Tracing", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -63,4 +64,4 @@ "redis_processes": "assets/saved_views/redis_processes.json" } } -} +} \ No newline at end of file diff --git a/rethinkdb/manifest.json b/rethinkdb/manifest.json index 34d5c011ddc15..3a2414d5d1950 100644 --- a/rethinkdb/manifest.json +++ b/rethinkdb/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -55,4 +56,4 @@ "rethinkdb_processes": "assets/saved_views/rethinkdb_processes.json" } } -} +} \ No newline at end of file diff --git a/riak/manifest.json b/riak/manifest.json index e5d9eab578cb9..8e690245d8bd9 100644 --- a/riak/manifest.json +++ b/riak/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -49,4 +50,4 @@ "riak": "assets/dashboards/riak_dashboard.json" } } -} +} \ No newline at end of file diff --git a/riakcs/manifest.json b/riakcs/manifest.json index 79fc82d2c916d..4a51d658cb414 100644 --- a/riakcs/manifest.json +++ b/riakcs/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Data Stores" + "Category::Data Stores", + "Offering::Integration" ] }, "author": { diff --git a/sap_hana/manifest.json b/sap_hana/manifest.json index ac9e467f38a06..82aa02da83990 100644 --- a/sap_hana/manifest.json +++ b/sap_hana/manifest.json @@ -16,7 +16,8 @@ "Category::SAP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/scylla/manifest.json b/scylla/manifest.json index ab914ce9df5b4..ac89a3ae2b9ae 100644 --- a/scylla/manifest.json +++ b/scylla/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -53,4 +54,4 @@ "[Scylla] Server is shutting down": "assets/monitors/instance_down.json" } } -} +} \ No newline at end of file diff --git a/sidekiq/manifest.json b/sidekiq/manifest.json index 30304ebd4ae10..52a64e7ebfdbd 100644 --- a/sidekiq/manifest.json +++ b/sidekiq/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "Sidekiq Overview": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/silk/manifest.json b/silk/manifest.json index 500344e07cdd1..bfc3949624542 100644 --- a/silk/manifest.json +++ b/silk/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Windows", "Category::Cloud", "Category::Data Stores", - "Category::Provisioning" + "Category::Provisioning", + "Offering::Integration" ] }, "author": { diff --git a/singlestore/manifest.json b/singlestore/manifest.json index 3da4bf261df64..e538565624088 100644 --- a/singlestore/manifest.json +++ b/singlestore/manifest.json @@ -17,7 +17,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -58,4 +59,4 @@ "[SingleStore] Write failures rate": "assets/monitors/write_failures.json" } } -} +} \ No newline at end of file diff --git a/snmp/manifest.json b/snmp/manifest.json index e532558f4134b..fde5bbb0de9cc 100644 --- a/snmp/manifest.json +++ b/snmp/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/snmp_american_power_conversion/manifest.json b/snmp_american_power_conversion/manifest.json index f02e15606fc6d..ff787c3667a77 100644 --- a/snmp_american_power_conversion/manifest.json +++ b/snmp_american_power_conversion/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/snmp_arista/manifest.json b/snmp_arista/manifest.json index d597e4f4b7b82..324a4c4758697 100644 --- a/snmp_arista/manifest.json +++ b/snmp_arista/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/snmp_aruba/manifest.json b/snmp_aruba/manifest.json index 6c099271890ba..8533d777c41c3 100644 --- a/snmp_aruba/manifest.json +++ b/snmp_aruba/manifest.json @@ -16,7 +16,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Category::Notifications", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "assets": { @@ -41,4 +42,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/snmp_chatsworth_products/manifest.json b/snmp_chatsworth_products/manifest.json index 85a29278247fd..a91418179897d 100644 --- a/snmp_chatsworth_products/manifest.json +++ b/snmp_chatsworth_products/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/snmp_check_point/manifest.json b/snmp_check_point/manifest.json index 02e574c905a18..626632975c8f6 100644 --- a/snmp_check_point/manifest.json +++ b/snmp_check_point/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/snmp_cisco/manifest.json b/snmp_cisco/manifest.json index ee51b00de59f5..2357332edce40 100644 --- a/snmp_cisco/manifest.json +++ b/snmp_cisco/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/snmp_dell/manifest.json b/snmp_dell/manifest.json index 9d194fa69f8ec..298b548dd3ba0 100644 --- a/snmp_dell/manifest.json +++ b/snmp_dell/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/snmp_f5/manifest.json b/snmp_f5/manifest.json index 5d26b58715b0b..29b4e5e4bac91 100644 --- a/snmp_f5/manifest.json +++ b/snmp_f5/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/snmp_fortinet/manifest.json b/snmp_fortinet/manifest.json index c92186c423847..9439206b59290 100644 --- a/snmp_fortinet/manifest.json +++ b/snmp_fortinet/manifest.json @@ -16,7 +16,8 @@ "Category::Notifications", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/snmp_hewlett_packard_enterprise/manifest.json b/snmp_hewlett_packard_enterprise/manifest.json index fe7ddae432ccc..54b27cb13907e 100644 --- a/snmp_hewlett_packard_enterprise/manifest.json +++ b/snmp_hewlett_packard_enterprise/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/snmp_juniper/manifest.json b/snmp_juniper/manifest.json index 584c95af864c5..61f6d503f1a52 100644 --- a/snmp_juniper/manifest.json +++ b/snmp_juniper/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/snmp_netapp/manifest.json b/snmp_netapp/manifest.json index 7b3ca9278be01..584f8f69f4f3d 100644 --- a/snmp_netapp/manifest.json +++ b/snmp_netapp/manifest.json @@ -17,7 +17,8 @@ "Category::SNMP", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "assets": { diff --git a/snowflake/manifest.json b/snowflake/manifest.json index ed6dc90aa35d9..72c1b20f77a3a 100644 --- a/snowflake/manifest.json +++ b/snowflake/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Windows", "Category::Cloud", "Category::Data Stores", - "Category::Cost Management" + "Category::Cost Management", + "Offering::Integration" ] }, "author": { @@ -54,5 +55,4 @@ "Snowflake failed logins": "assets/monitors/snowflake_failed_logins.json" } } -} - +} \ No newline at end of file diff --git a/solr/manifest.json b/solr/manifest.json index 3a43d5a3822d5..14eecbea3b400 100644 --- a/solr/manifest.json +++ b/solr/manifest.json @@ -17,7 +17,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -56,4 +57,4 @@ "solr_processes": "assets/saved_views/solr_processes.json" } } -} +} \ No newline at end of file diff --git a/sonarqube/manifest.json b/sonarqube/manifest.json index 43f41129daae5..aadb34fc3d16e 100644 --- a/sonarqube/manifest.json +++ b/sonarqube/manifest.json @@ -17,7 +17,8 @@ "Category::Security", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -60,4 +61,4 @@ "status_overview": "assets/saved_views/status_overview.json" } } -} +} \ No newline at end of file diff --git a/spark/manifest.json b/spark/manifest.json index 9e813848b0419..f15a46cecd844 100644 --- a/spark/manifest.json +++ b/spark/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -54,4 +55,4 @@ "Databricks Spark Overview": "assets/dashboards/databricks_overview.json" } } -} +} \ No newline at end of file diff --git a/sqlserver/manifest.json b/sqlserver/manifest.json index e280236382c82..eeeed1eff7800 100644 --- a/sqlserver/manifest.json +++ b/sqlserver/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -58,4 +59,4 @@ "SQLServer db not in sync": "assets/monitors/sqlserver_db_not_sync.json" } } -} +} \ No newline at end of file diff --git a/squid/manifest.json b/squid/manifest.json index 12e4c940b0898..f1a26f119a775 100644 --- a/squid/manifest.json +++ b/squid/manifest.json @@ -16,7 +16,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -46,4 +47,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/ssh_check/manifest.json b/ssh_check/manifest.json index 745948d64a223..17af4fc243f18 100644 --- a/ssh_check/manifest.json +++ b/ssh_check/manifest.json @@ -16,7 +16,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/statsd/manifest.json b/statsd/manifest.json index 1aac5a2943da9..29165347baf90 100644 --- a/statsd/manifest.json +++ b/statsd/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -45,4 +46,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/strimzi/manifest.json b/strimzi/manifest.json index 529b6bf1998fa..fa92e72f1c8ee 100644 --- a/strimzi/manifest.json +++ b/strimzi/manifest.json @@ -18,7 +18,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Submitted Data Type::Logs", - "Submitted Data Type::Metrics" + "Submitted Data Type::Metrics", + "Offering::Integration" ] }, "assets": { @@ -64,4 +65,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/supervisord/manifest.json b/supervisord/manifest.json index 5e16d53ec50f0..e9e8aae801e18 100644 --- a/supervisord/manifest.json +++ b/supervisord/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::OS & System", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "supervisord_processes": "assets/saved_views/supervisord_processes.json" } } -} +} \ No newline at end of file diff --git a/system_core/manifest.json b/system_core/manifest.json index 3ca810170b044..2a236dd443c1f 100644 --- a/system_core/manifest.json +++ b/system_core/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/system_swap/manifest.json b/system_swap/manifest.json index 257435a06fd42..2715d26cc7845 100644 --- a/system_swap/manifest.json +++ b/system_swap/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/systemd/manifest.json b/systemd/manifest.json index 1725e18f1463b..a62ebd2d0b6c6 100644 --- a/systemd/manifest.json +++ b/systemd/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Linux", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { diff --git a/tcp_check/manifest.json b/tcp_check/manifest.json index 327b4484b4225..81ea7e0b6a121 100644 --- a/tcp_check/manifest.json +++ b/tcp_check/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Network" + "Category::Network", + "Offering::Integration" ] }, "author": { @@ -43,4 +44,4 @@ } } } -} +} \ No newline at end of file diff --git a/tcp_queue_length/manifest.json b/tcp_queue_length/manifest.json index 4498e67cc596b..72718be761205 100644 --- a/tcp_queue_length/manifest.json +++ b/tcp_queue_length/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Category::Developer Tools", "Category::Network", - "Supported OS::Linux" + "Supported OS::Linux", + "Offering::Integration" ] }, "author": { diff --git a/teamcity/manifest.json b/teamcity/manifest.json index 8151409e06a7d..dcffd14824ec9 100644 --- a/teamcity/manifest.json +++ b/teamcity/manifest.json @@ -17,7 +17,8 @@ "Category::Notifications", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -63,4 +64,4 @@ "teamcity_processes": "assets/saved_views/teamcity_processes.json" } } -} +} \ No newline at end of file diff --git a/tekton/manifest.json b/tekton/manifest.json index 2e815f44c6f6e..c07bc7d7c8349 100644 --- a/tekton/manifest.json +++ b/tekton/manifest.json @@ -16,7 +16,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Category::Log Collection", - "Category::Developer Tools" + "Category::Developer Tools", + "Offering::Integration" ] }, "assets": { @@ -62,4 +63,4 @@ "sales_email": "info@datadoghq.com" }, "oauth": {} -} +} \ No newline at end of file diff --git a/teleport/manifest.json b/teleport/manifest.json index d386e74fa9cc5..08be4fe8801f7 100644 --- a/teleport/manifest.json +++ b/teleport/manifest.json @@ -16,7 +16,8 @@ "Supported OS::Windows", "Supported OS::macOS", "Category::Cloud", - "Category::Security" + "Category::Security", + "Offering::Integration" ] }, "assets": { @@ -33,10 +34,10 @@ "metrics": { "prefix": "teleport.", "check": [ - "teleport.common.process_state", - "teleport.common.rx", - "teleport.common.tx", - "teleport.common.teleport_build_info" + "teleport.common.process_state", + "teleport.common.rx", + "teleport.common.tx", + "teleport.common.teleport_build_info" ], "metadata_path": "metadata.csv" }, @@ -55,4 +56,4 @@ "sales_email": "info@datadoghq.com" }, "oauth": {} -} +} \ No newline at end of file diff --git a/temporal/manifest.json b/temporal/manifest.json index c9cefc46766af..b987177fa06e5 100644 --- a/temporal/manifest.json +++ b/temporal/manifest.json @@ -18,7 +18,8 @@ "Category::Log Collection", "Category::Developer Tools", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -60,4 +61,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/tenable/manifest.json b/tenable/manifest.json index 2bf75d7696d2d..2a07c6587c7af 100644 --- a/tenable/manifest.json +++ b/tenable/manifest.json @@ -15,7 +15,8 @@ "Supported OS::Linux", "Supported OS::macOS", "Supported OS::Windows", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -40,4 +41,4 @@ "auto_install": true } } -} +} \ No newline at end of file diff --git a/teradata/manifest.json b/teradata/manifest.json index b3418e23876e9..c08c5d7edc74d 100644 --- a/teradata/manifest.json +++ b/teradata/manifest.json @@ -15,7 +15,8 @@ "Category::Caching", "Category::Data Stores", "Supported OS::Linux", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { diff --git a/terraform/manifest.json b/terraform/manifest.json index 20483cbf692a3..291472438524a 100644 --- a/terraform/manifest.json +++ b/terraform/manifest.json @@ -17,7 +17,8 @@ "Category::Orchestration", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/tls/manifest.json b/tls/manifest.json index 67f3fd9583592..5129e9145dfa5 100644 --- a/tls/manifest.json +++ b/tls/manifest.json @@ -16,7 +16,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/tokumx/manifest.json b/tokumx/manifest.json index 27fb37c5420f6..6c2e848b170b5 100644 --- a/tokumx/manifest.json +++ b/tokumx/manifest.json @@ -16,7 +16,8 @@ "Category::Data Stores", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "tokumx_processes": "assets/saved_views/tokumx_processes.json" } } -} +} \ No newline at end of file diff --git a/tomcat/manifest.json b/tomcat/manifest.json index c95bc78e485e4..5ffd7f45d64fd 100644 --- a/tomcat/manifest.json +++ b/tomcat/manifest.json @@ -16,7 +16,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -68,4 +69,4 @@ "tomcat_status_code_overview": "assets/saved_views/tomcat_status_code_overview.json" } } -} +} \ No newline at end of file diff --git a/torchserve/manifest.json b/torchserve/manifest.json index 8c8ec846a767c..76ed7d31d110d 100644 --- a/torchserve/manifest.json +++ b/torchserve/manifest.json @@ -19,7 +19,8 @@ "Supported OS::macOS", "Category::AI/ML", "Submitted Data Type::Metrics", - "Submitted Data Type::Logs" + "Submitted Data Type::Logs", + "Offering::Integration" ] }, "assets": { @@ -61,4 +62,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/traefik_mesh/manifest.json b/traefik_mesh/manifest.json index f53d4550a6139..c5fe244c46ce3 100644 --- a/traefik_mesh/manifest.json +++ b/traefik_mesh/manifest.json @@ -19,7 +19,8 @@ "Supported OS::macOS", "Submitted Data Type::Metrics", "Submitted Data Type::Logs", - "Submitted Data Type::Traces" + "Submitted Data Type::Traces", + "Offering::Integration" ] }, "assets": { @@ -63,4 +64,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/traffic_server/manifest.json b/traffic_server/manifest.json index 88acb58d49bf5..93f45df8b543a 100644 --- a/traffic_server/manifest.json +++ b/traffic_server/manifest.json @@ -16,7 +16,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -64,4 +65,4 @@ "traffic_server_patterns": "assets/saved_views/traffic_server_error_patterns.json" } } -} +} \ No newline at end of file diff --git a/twemproxy/manifest.json b/twemproxy/manifest.json index 1e97416b2f748..40b6ddfd96eeb 100644 --- a/twemproxy/manifest.json +++ b/twemproxy/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -48,4 +49,4 @@ "Twemproxy - Overview": "assets/dashboards/twemproxy_overview.json" } } -} +} \ No newline at end of file diff --git a/twistlock/manifest.json b/twistlock/manifest.json index 707d7aaf4be44..329b3814d23f2 100644 --- a/twistlock/manifest.json +++ b/twistlock/manifest.json @@ -19,7 +19,8 @@ "Category::Security", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "Twistlock": "assets/dashboards/overview.json" } } -} +} \ No newline at end of file diff --git a/varnish/manifest.json b/varnish/manifest.json index 9fb3412aa6fa1..b6630b09a3547 100644 --- a/varnish/manifest.json +++ b/varnish/manifest.json @@ -17,7 +17,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -61,4 +62,4 @@ "varnish_processes": "assets/saved_views/varnish_processes.json" } } -} +} \ No newline at end of file diff --git a/vault/manifest.json b/vault/manifest.json index 2e91f464aa975..bb7f395a4a94c 100644 --- a/vault/manifest.json +++ b/vault/manifest.json @@ -16,7 +16,8 @@ "Category::Security", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -61,4 +62,4 @@ "vault_patern": "assets/saved_views/vault_patern.json" } } -} +} \ No newline at end of file diff --git a/vertica/manifest.json b/vertica/manifest.json index 2a05938e26127..6919aa2e99371 100644 --- a/vertica/manifest.json +++ b/vertica/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -52,4 +53,4 @@ "[Vertica] Nodes down above K-safety level": "assets/monitors/vertica_replication_safety.json" } } -} +} \ No newline at end of file diff --git a/vllm/manifest.json b/vllm/manifest.json index abac56e4ba705..e61a63b6eadf9 100644 --- a/vllm/manifest.json +++ b/vllm/manifest.json @@ -17,7 +17,8 @@ "Supported OS::macOS", "Category::Log Collection", "Category::AI/ML", - "Submitted Data Type::Metrics" + "Submitted Data Type::Metrics", + "Offering::Integration" ] }, "assets": { @@ -41,8 +42,8 @@ } }, "monitors": { - "token_throughput": "assets/monitors/token_throughput.json", - "latency": "assets/monitors/latency.json" + "token_throughput": "assets/monitors/token_throughput.json", + "latency": "assets/monitors/latency.json" } }, "author": { @@ -51,4 +52,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/voltdb/manifest.json b/voltdb/manifest.json index 9f5e9f2dd3deb..1c1c5efa92b45 100644 --- a/voltdb/manifest.json +++ b/voltdb/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Supported OS::Windows", "Category::Data Stores", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -58,4 +59,4 @@ "voltdb_processes": "assets/saved_views/voltdb_processes.json" } } -} +} \ No newline at end of file diff --git a/vsphere/manifest.json b/vsphere/manifest.json index 738c4c8d06314..a34b0e1ba1bf6 100644 --- a/vsphere/manifest.json +++ b/vsphere/manifest.json @@ -16,7 +16,8 @@ "Category::Network", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { diff --git a/weaviate/manifest.json b/weaviate/manifest.json index 32ad83e76ce3f..bcad1920364a9 100644 --- a/weaviate/manifest.json +++ b/weaviate/manifest.json @@ -17,7 +17,8 @@ "Supported OS::Linux", "Supported OS::Windows", "Supported OS::macOS", - "Submitted Data Type::Metrics" + "Submitted Data Type::Metrics", + "Offering::Integration" ] }, "assets": { @@ -57,4 +58,4 @@ "homepage": "https://www.datadoghq.com", "sales_email": "info@datadoghq.com" } -} +} \ No newline at end of file diff --git a/weblogic/manifest.json b/weblogic/manifest.json index 6748e76801e18..4e4a29a42c144 100644 --- a/weblogic/manifest.json +++ b/weblogic/manifest.json @@ -16,7 +16,8 @@ "Category::Oracle", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -62,4 +63,4 @@ "weblogic_patterns": "assets/saved_views/weblogic_patterns.json" } } -} +} \ No newline at end of file diff --git a/win32_event_log/manifest.json b/win32_event_log/manifest.json index 08a1475834b51..8e0b2db4fb443 100644 --- a/win32_event_log/manifest.json +++ b/win32_event_log/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Windows", "Category::OS & System", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -45,4 +46,4 @@ "windows_event_log_overview": "assets/dashboards/windows_event_log_overview.json" } } -} +} \ No newline at end of file diff --git a/wincrashdetect/manifest.json b/wincrashdetect/manifest.json index 1a33d7b5b3494..abd8463218eb3 100644 --- a/wincrashdetect/manifest.json +++ b/wincrashdetect/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { @@ -36,7 +37,7 @@ "auto_install": true }, "monitors": { - "windows_crash": "assets/monitors/windows_crash.json" + "windows_crash": "assets/monitors/windows_crash.json" } } } \ No newline at end of file diff --git a/windows_performance_counters/manifest.json b/windows_performance_counters/manifest.json index da57030a3cd2d..e4a9f1277e081 100644 --- a/windows_performance_counters/manifest.json +++ b/windows_performance_counters/manifest.json @@ -14,7 +14,8 @@ "classifier_tags": [ "Supported OS::Windows", "Category::IoT", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { diff --git a/windows_registry/manifest.json b/windows_registry/manifest.json index de982e18373c4..e3b9b187709fe 100644 --- a/windows_registry/manifest.json +++ b/windows_registry/manifest.json @@ -1,41 +1,41 @@ { - "manifest_version": "2.0.0", - "app_uuid": "cc166a5c-6742-4811-b3e1-93dbec0ac5b2", - "app_id": "windows-registry", - "display_on_public_website": true, - "tile": { - "overview": "README.md#Overview", - "configuration": "README.md#Setup", - "support": "README.md#Support", - "changelog": "CHANGELOG.md", - "description": "Monitor your Windows hosts for changes in registry keys.", - "title": "Windows Registry", - "media": [], - "classifier_tags": [ - "Supported OS::Windows", - "Category::OS & System" - ] - }, - "author": { - "support_email": "help@datadoghq.com", - "name": "Datadog", - "homepage": "https://www.datadoghq.com", - "sales_email": "info@datadoghq.com" - }, - "oauth": {}, - "assets": { - "integration": { - "auto_install": true, - "source_type_id": 8444609, - "source_type_name": "windows-registry", - "configuration": {}, - "events": { - "creates_events": false - }, - "service_checks": { - "metadata_path": "assets/service_checks.json" - } + "manifest_version": "2.0.0", + "app_uuid": "cc166a5c-6742-4811-b3e1-93dbec0ac5b2", + "app_id": "windows-registry", + "display_on_public_website": true, + "tile": { + "overview": "README.md#Overview", + "configuration": "README.md#Setup", + "support": "README.md#Support", + "changelog": "CHANGELOG.md", + "description": "Monitor your Windows hosts for changes in registry keys.", + "title": "Windows Registry", + "media": [], + "classifier_tags": [ + "Supported OS::Windows", + "Category::OS & System", + "Offering::Integration" + ] + }, + "author": { + "support_email": "help@datadoghq.com", + "name": "Datadog", + "homepage": "https://www.datadoghq.com", + "sales_email": "info@datadoghq.com" + }, + "oauth": {}, + "assets": { + "integration": { + "auto_install": true, + "source_type_id": 8444609, + "source_type_name": "windows-registry", + "configuration": {}, + "events": { + "creates_events": false + }, + "service_checks": { + "metadata_path": "assets/service_checks.json" } } } - +} \ No newline at end of file diff --git a/windows_service/manifest.json b/windows_service/manifest.json index 17f35d71c8552..eabbc8bec19d8 100644 --- a/windows_service/manifest.json +++ b/windows_service/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { diff --git a/winkmem/manifest.json b/winkmem/manifest.json index c355fdc547d20..d96ebb5c9e033 100644 --- a/winkmem/manifest.json +++ b/winkmem/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Supported OS::Windows", - "Category::OS & System" + "Category::OS & System", + "Offering::Integration" ] }, "author": { diff --git a/wmi_check/manifest.json b/wmi_check/manifest.json index 4497d91e54a98..3ee95a8b6bf3b 100644 --- a/wmi_check/manifest.json +++ b/wmi_check/manifest.json @@ -13,7 +13,8 @@ "media": [], "classifier_tags": [ "Category::OS & System", - "Supported OS::Windows" + "Supported OS::Windows", + "Offering::Integration" ] }, "author": { diff --git a/yarn/manifest.json b/yarn/manifest.json index 7a7d64a8fec1e..5a532cfe8b74d 100644 --- a/yarn/manifest.json +++ b/yarn/manifest.json @@ -15,7 +15,8 @@ "Category::Log Collection", "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS" + "Supported OS::macOS", + "Offering::Integration" ] }, "author": { @@ -53,4 +54,4 @@ "hadoop": "assets/dashboards/hadoop_dashboard.json" } } -} +} \ No newline at end of file diff --git a/zk/manifest.json b/zk/manifest.json index 623f1d9e946f6..a671801881071 100644 --- a/zk/manifest.json +++ b/zk/manifest.json @@ -16,7 +16,8 @@ "Supported OS::macOS", "Category::Orchestration", "Category::Notifications", - "Category::Log Collection" + "Category::Log Collection", + "Offering::Integration" ] }, "author": { @@ -56,4 +57,4 @@ "zookeeper_processes": "assets/saved_views/zookeeper_processes.json" } } -} +} \ No newline at end of file From ab8ef77c13f34c845a231e0c92e28ecd31e6c218 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Thu, 11 Jul 2024 16:08:14 +0200 Subject: [PATCH 48/68] Add explanation to logs-only template (#18027) --- .../dev/tooling/templates/integration/logs/README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/README.md diff --git a/datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/README.md b/datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/README.md new file mode 100644 index 0000000000000..d9daf3ec74255 --- /dev/null +++ b/datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/README.md @@ -0,0 +1,6 @@ +# Logs-only Integration + +This type of integration only includes logs pipelines and config. +To help customers get started with their config we turn this integration into a Python package that can be installed in the Agent. + +We release these integrations just like real checks and manage the changelog with towncrier in integrations-core. From a5d9a85080cc827c68cc26514d0c19bd8d983e6c Mon Sep 17 00:00:00 2001 From: "datadog-agent-integrations-bot[bot]" <159767151+datadog-agent-integrations-bot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 11:14:25 -0400 Subject: [PATCH 49/68] Finalize Agent release 7.55.0 (#18022) Co-authored-by: steveny91 --- AGENT_CHANGELOG.md | 122 +++++++++++++ AGENT_INTEGRATIONS.md | 193 +++++++++++++++++++++ active_directory/CHANGELOG.md | 2 +- activemq_xml/CHANGELOG.md | 2 +- aerospike/CHANGELOG.md | 2 +- airflow/CHANGELOG.md | 2 +- ambari/CHANGELOG.md | 2 +- apache/CHANGELOG.md | 2 +- arangodb/CHANGELOG.md | 2 +- argo_rollouts/CHANGELOG.md | 2 +- argo_workflows/CHANGELOG.md | 2 +- argocd/CHANGELOG.md | 2 +- aspdotnet/CHANGELOG.md | 2 +- avi_vantage/CHANGELOG.md | 2 +- azure_iot_edge/CHANGELOG.md | 2 +- boundary/CHANGELOG.md | 2 +- calico/CHANGELOG.md | 2 +- cert_manager/CHANGELOG.md | 2 +- cilium/CHANGELOG.md | 2 +- cisco_aci/CHANGELOG.md | 2 +- citrix_hypervisor/CHANGELOG.md | 2 +- cloud_foundry_api/CHANGELOG.md | 2 +- cockroachdb/CHANGELOG.md | 2 +- confluent_platform/CHANGELOG.md | 2 +- consul/CHANGELOG.md | 2 +- coredns/CHANGELOG.md | 2 +- couch/CHANGELOG.md | 2 +- couchbase/CHANGELOG.md | 2 +- crio/CHANGELOG.md | 2 +- datadog_checks_base/CHANGELOG.md | 2 +- datadog_checks_downloader/CHANGELOG.md | 2 +- datadog_cluster_agent/CHANGELOG.md | 2 +- dcgm/CHANGELOG.md | 2 +- dotnetclr/CHANGELOG.md | 2 +- druid/CHANGELOG.md | 2 +- ecs_fargate/CHANGELOG.md | 2 +- eks_fargate/CHANGELOG.md | 2 +- elastic/CHANGELOG.md | 2 +- envoy/CHANGELOG.md | 2 +- esxi/CHANGELOG.md | 2 +- etcd/CHANGELOG.md | 2 +- exchange_server/CHANGELOG.md | 2 +- external_dns/CHANGELOG.md | 2 +- fluentd/CHANGELOG.md | 2 +- fluxcd/CHANGELOG.md | 2 +- gitlab/CHANGELOG.md | 2 +- gitlab_runner/CHANGELOG.md | 2 +- go_expvar/CHANGELOG.md | 2 +- haproxy/CHANGELOG.md | 2 +- harbor/CHANGELOG.md | 2 +- hazelcast/CHANGELOG.md | 2 +- hdfs_datanode/CHANGELOG.md | 2 +- hdfs_namenode/CHANGELOG.md | 2 +- http_check/CHANGELOG.md | 2 +- hyperv/CHANGELOG.md | 2 +- ibm_was/CHANGELOG.md | 2 +- iis/CHANGELOG.md | 2 +- impala/CHANGELOG.md | 2 +- istio/CHANGELOG.md | 2 +- kafka/CHANGELOG.md | 2 +- kafka_consumer/CHANGELOG.md | 2 +- karpenter/CHANGELOG.md | 2 +- kong/CHANGELOG.md | 2 +- kube_apiserver_metrics/CHANGELOG.md | 2 +- kube_controller_manager/CHANGELOG.md | 2 +- kube_dns/CHANGELOG.md | 2 +- kube_metrics_server/CHANGELOG.md | 2 +- kube_proxy/CHANGELOG.md | 2 +- kube_scheduler/CHANGELOG.md | 2 +- kubelet/CHANGELOG.md | 2 +- kubernetes_cluster_autoscaler/CHANGELOG.md | 2 +- kubernetes_state/CHANGELOG.md | 2 +- kyototycoon/CHANGELOG.md | 2 +- lighttpd/CHANGELOG.md | 2 +- linkerd/CHANGELOG.md | 2 +- mapreduce/CHANGELOG.md | 2 +- marathon/CHANGELOG.md | 2 +- marklogic/CHANGELOG.md | 2 +- mesos_master/CHANGELOG.md | 2 +- mesos_slave/CHANGELOG.md | 2 +- mongo/CHANGELOG.md | 2 +- mysql/CHANGELOG.md | 2 +- nginx/CHANGELOG.md | 2 +- nginx_ingress_controller/CHANGELOG.md | 2 +- nvidia_triton/CHANGELOG.md | 2 +- openmetrics/CHANGELOG.md | 2 +- php_fpm/CHANGELOG.md | 2 +- powerdns_recursor/CHANGELOG.md | 2 +- pulsar/CHANGELOG.md | 2 +- rabbitmq/CHANGELOG.md | 2 +- ray/CHANGELOG.md | 2 +- redisdb/CHANGELOG.md | 2 +- riak/CHANGELOG.md | 2 +- scylla/CHANGELOG.md | 2 +- silk/CHANGELOG.md | 2 +- snmp/CHANGELOG.md | 2 +- snowflake/CHANGELOG.md | 2 +- sonarqube/CHANGELOG.md | 2 +- spark/CHANGELOG.md | 2 +- sqlserver/CHANGELOG.md | 2 +- squid/CHANGELOG.md | 2 +- strimzi/CHANGELOG.md | 2 +- tekton/CHANGELOG.md | 2 +- temporal/CHANGELOG.md | 2 +- teradata/CHANGELOG.md | 2 +- tls/CHANGELOG.md | 2 +- torchserve/CHANGELOG.md | 2 +- traefik_mesh/CHANGELOG.md | 2 +- traffic_server/CHANGELOG.md | 2 +- twistlock/CHANGELOG.md | 2 +- vault/CHANGELOG.md | 2 +- voltdb/CHANGELOG.md | 2 +- vsphere/CHANGELOG.md | 2 +- weaviate/CHANGELOG.md | 2 +- windows_performance_counters/CHANGELOG.md | 2 +- windows_service/CHANGELOG.md | 2 +- yarn/CHANGELOG.md | 2 +- 117 files changed, 430 insertions(+), 115 deletions(-) diff --git a/AGENT_CHANGELOG.md b/AGENT_CHANGELOG.md index 928d4a65b8ec0..b4f4fcb68fffc 100644 --- a/AGENT_CHANGELOG.md +++ b/AGENT_CHANGELOG.md @@ -1,3 +1,125 @@ +## Datadog Agent version [7.55.0](https://github.com/DataDog/datadog-agent/blob/master/CHANGELOG.rst#7550) + +* Active Directory [2.1.1](https://github.com/DataDog/integrations-core/blob/master/active_directory/CHANGELOG.md) +* ActiveMQ XML [3.2.1](https://github.com/DataDog/integrations-core/blob/master/activemq_xml/CHANGELOG.md) +* Aerospike [2.2.2](https://github.com/DataDog/integrations-core/blob/master/aerospike/CHANGELOG.md) +* Airflow [5.0.1](https://github.com/DataDog/integrations-core/blob/master/airflow/CHANGELOG.md) +* Amazon Kafka [4.8.1](https://github.com/DataDog/integrations-core/blob/master/amazon_msk/CHANGELOG.md) +* Ambari [4.2.1](https://github.com/DataDog/integrations-core/blob/master/ambari/CHANGELOG.md) +* Apache [4.5.1](https://github.com/DataDog/integrations-core/blob/master/apache/CHANGELOG.md) +* ArangoDB [2.2.2](https://github.com/DataDog/integrations-core/blob/master/arangodb/CHANGELOG.md) +* Argo Rollouts [1.0.2](https://github.com/DataDog/integrations-core/blob/master/argo_rollouts/CHANGELOG.md) +* Argo Workflows [1.0.2](https://github.com/DataDog/integrations-core/blob/master/argo_workflows/CHANGELOG.md) +* ArgoCD [2.4.2](https://github.com/DataDog/integrations-core/blob/master/argocd/CHANGELOG.md) +* ASP.NET [2.1.1](https://github.com/DataDog/integrations-core/blob/master/aspdotnet/CHANGELOG.md) +* Avi Vantage [4.2.2](https://github.com/DataDog/integrations-core/blob/master/avi_vantage/CHANGELOG.md) +* Azure IoT Edge [4.2.1](https://github.com/DataDog/integrations-core/blob/master/azure_iot_edge/CHANGELOG.md) +* Boundary [2.2.3](https://github.com/DataDog/integrations-core/blob/master/boundary/CHANGELOG.md) +* Calico [2.2.2](https://github.com/DataDog/integrations-core/blob/master/calico/CHANGELOG.md) +* cert-manager [4.1.2](https://github.com/DataDog/integrations-core/blob/master/cert_manager/CHANGELOG.md) +* Datadog Checks Base [36.8.0](https://github.com/DataDog/integrations-core/blob/master/datadog_checks_base/CHANGELOG.md) +* Datadog Checks Downloader [4.7.0](https://github.com/DataDog/integrations-core/blob/master/datadog_checks_downloader/CHANGELOG.md) +* Cilium [3.5.1](https://github.com/DataDog/integrations-core/blob/master/cilium/CHANGELOG.md) +* Cisco ACI [2.8.0](https://github.com/DataDog/integrations-core/blob/master/cisco_aci/CHANGELOG.md) +* Citrix Hypervisor [3.2.1](https://github.com/DataDog/integrations-core/blob/master/citrix_hypervisor/CHANGELOG.md) +* Cloud Foundry API [3.3.1](https://github.com/DataDog/integrations-core/blob/master/cloud_foundry_api/CHANGELOG.md) +* CockroachDB [3.3.2](https://github.com/DataDog/integrations-core/blob/master/cockroachdb/CHANGELOG.md) +* Confluent Platform [1.10.2](https://github.com/DataDog/integrations-core/blob/master/confluent_platform/CHANGELOG.md) +* Consul [2.6.1](https://github.com/DataDog/integrations-core/blob/master/consul/CHANGELOG.md) +* CoreDNS [3.2.3](https://github.com/DataDog/integrations-core/blob/master/coredns/CHANGELOG.md) +* CouchDB [6.2.1](https://github.com/DataDog/integrations-core/blob/master/couch/CHANGELOG.md) +* Couchbase [3.2.1](https://github.com/DataDog/integrations-core/blob/master/couchbase/CHANGELOG.md) +* CRI-O [2.6.1](https://github.com/DataDog/integrations-core/blob/master/crio/CHANGELOG.md) +* Datadog Cluster Agent [3.1.1](https://github.com/DataDog/integrations-core/blob/master/datadog_cluster_agent/CHANGELOG.md) +* dcgm [2.3.2](https://github.com/DataDog/integrations-core/blob/master/dcgm/CHANGELOG.md) +* .NET CLR [2.1.1](https://github.com/DataDog/integrations-core/blob/master/dotnetclr/CHANGELOG.md) +* Druid [2.5.1](https://github.com/DataDog/integrations-core/blob/master/druid/CHANGELOG.md) +* Amazon ECS Fargate [4.3.1](https://github.com/DataDog/integrations-core/blob/master/ecs_fargate/CHANGELOG.md) +* EKS Fargate [4.2.1](https://github.com/DataDog/integrations-core/blob/master/eks_fargate/CHANGELOG.md) +* Elasticsearch [6.3.1](https://github.com/DataDog/integrations-core/blob/master/elastic/CHANGELOG.md) +* Envoy [3.5.1](https://github.com/DataDog/integrations-core/blob/master/envoy/CHANGELOG.md) +* ESXi [1.1.0](https://github.com/DataDog/integrations-core/blob/master/esxi/CHANGELOG.md) +* etcd [6.2.1](https://github.com/DataDog/integrations-core/blob/master/etcd/CHANGELOG.md) +* Exchange Server [2.1.1](https://github.com/DataDog/integrations-core/blob/master/exchange_server/CHANGELOG.md) +* External DNS [3.2.1](https://github.com/DataDog/integrations-core/blob/master/external_dns/CHANGELOG.md) +* Fluentd [3.2.1](https://github.com/DataDog/integrations-core/blob/master/fluentd/CHANGELOG.md) +* fluxcd [1.2.2](https://github.com/DataDog/integrations-core/blob/master/fluxcd/CHANGELOG.md) +* Gitlab Runner [4.2.1](https://github.com/DataDog/integrations-core/blob/master/gitlab_runner/CHANGELOG.md) +* Gitlab [7.3.2](https://github.com/DataDog/integrations-core/blob/master/gitlab/CHANGELOG.md) +* Go Expvar [2.5.1](https://github.com/DataDog/integrations-core/blob/master/go_expvar/CHANGELOG.md) +* HAProxy [5.2.2](https://github.com/DataDog/integrations-core/blob/master/haproxy/CHANGELOG.md) +* Harbor [3.2.2](https://github.com/DataDog/integrations-core/blob/master/harbor/CHANGELOG.md) +* Hazelcast [3.2.1](https://github.com/DataDog/integrations-core/blob/master/hazelcast/CHANGELOG.md) +* HDFS Datanode [4.2.1](https://github.com/DataDog/integrations-core/blob/master/hdfs_datanode/CHANGELOG.md) +* HDFS Namenode [4.2.1](https://github.com/DataDog/integrations-core/blob/master/hdfs_namenode/CHANGELOG.md) +* HTTP [9.6.0](https://github.com/DataDog/integrations-core/blob/master/http_check/CHANGELOG.md) +* HyperV [1.11.1](https://github.com/DataDog/integrations-core/blob/master/hyperv/CHANGELOG.md) +* IBM WAS [3.3.1](https://github.com/DataDog/integrations-core/blob/master/ibm_was/CHANGELOG.md) +* IIS [3.1.1](https://github.com/DataDog/integrations-core/blob/master/iis/CHANGELOG.md) +* Impala [2.2.2](https://github.com/DataDog/integrations-core/blob/master/impala/CHANGELOG.md) +* Istio [6.1.2](https://github.com/DataDog/integrations-core/blob/master/istio/CHANGELOG.md) +* Kafka Consumer [4.4.0](https://github.com/DataDog/integrations-core/blob/master/kafka_consumer/CHANGELOG.md) +* Kafka [2.16.0](https://github.com/DataDog/integrations-core/blob/master/kafka/CHANGELOG.md) +* Karpenter [1.4.1](https://github.com/DataDog/integrations-core/blob/master/karpenter/CHANGELOG.md) +* Kong [3.2.2](https://github.com/DataDog/integrations-core/blob/master/kong/CHANGELOG.md) +* Kubernetes API server metrics [4.3.1](https://github.com/DataDog/integrations-core/blob/master/kube_apiserver_metrics/CHANGELOG.md) +* Kubernetes Controller Manager [5.1.1](https://github.com/DataDog/integrations-core/blob/master/kube_controller_manager/CHANGELOG.md) +* Kube DNS [4.4.1](https://github.com/DataDog/integrations-core/blob/master/kube_dns/CHANGELOG.md) +* Kube metrics server [3.3.1](https://github.com/DataDog/integrations-core/blob/master/kube_metrics_server/CHANGELOG.md) +* Kube Proxy [6.3.1](https://github.com/DataDog/integrations-core/blob/master/kube_proxy/CHANGELOG.md) +* Kubernetes Scheduler [4.10.1](https://github.com/DataDog/integrations-core/blob/master/kube_scheduler/CHANGELOG.md) +* Kubelet [7.13.2](https://github.com/DataDog/integrations-core/blob/master/kubelet/CHANGELOG.md) +* Kubernetes Cluster Autoscaler [1.0.1](https://github.com/DataDog/integrations-core/blob/master/kubernetes_cluster_autoscaler/CHANGELOG.md) +* Kubernetes State [8.1.1](https://github.com/DataDog/integrations-core/blob/master/kubernetes_state/CHANGELOG.md) +* Kyoto Tycoon [2.5.1](https://github.com/DataDog/integrations-core/blob/master/kyototycoon/CHANGELOG.md) +* Lighttpd [3.5.1](https://github.com/DataDog/integrations-core/blob/master/lighttpd/CHANGELOG.md) +* Linkerd [4.2.2](https://github.com/DataDog/integrations-core/blob/master/linkerd/CHANGELOG.md) +* MapReduce [4.2.1](https://github.com/DataDog/integrations-core/blob/master/mapreduce/CHANGELOG.md) +* Marathon [2.3.1](https://github.com/DataDog/integrations-core/blob/master/marathon/CHANGELOG.md) +* MarkLogic [4.2.1](https://github.com/DataDog/integrations-core/blob/master/marklogic/CHANGELOG.md) +* Mesos Master [3.3.1](https://github.com/DataDog/integrations-core/blob/master/mesos_master/CHANGELOG.md) +* Mesos Slave [3.3.1](https://github.com/DataDog/integrations-core/blob/master/mesos_slave/CHANGELOG.md) +* MongoDB [6.5.0](https://github.com/DataDog/integrations-core/blob/master/mongo/CHANGELOG.md) +* MySQL [12.5.1](https://github.com/DataDog/integrations-core/blob/master/mysql/CHANGELOG.md) +* NGINX Ingress Controller [2.6.1](https://github.com/DataDog/integrations-core/blob/master/nginx_ingress_controller/CHANGELOG.md) +* NGINX [6.3.1](https://github.com/DataDog/integrations-core/blob/master/nginx/CHANGELOG.md) +* Nvidia Triton [1.2.2](https://github.com/DataDog/integrations-core/blob/master/nvidia_triton/CHANGELOG.md) +* OpenMetrics [4.2.2](https://github.com/DataDog/integrations-core/blob/master/openmetrics/CHANGELOG.md) +* OpenStack Controller [6.6.1](https://github.com/DataDog/integrations-core/blob/master/openstack_controller/CHANGELOG.md) +* PHP-FPM [3.3.1](https://github.com/DataDog/integrations-core/blob/master/php_fpm/CHANGELOG.md) +* Postgres [18.3.1](https://github.com/DataDog/integrations-core/blob/master/postgres/CHANGELOG.md) +* PowerDNS Recursor [2.5.1](https://github.com/DataDog/integrations-core/blob/master/powerdns_recursor/CHANGELOG.md) +* Pulsar [2.2.2](https://github.com/DataDog/integrations-core/blob/master/pulsar/CHANGELOG.md) +* RabbitMQ [5.3.2](https://github.com/DataDog/integrations-core/blob/master/rabbitmq/CHANGELOG.md) +* Ray [1.2.2](https://github.com/DataDog/integrations-core/blob/master/ray/CHANGELOG.md) +* Redis [5.5.0](https://github.com/DataDog/integrations-core/blob/master/redisdb/CHANGELOG.md) +* Riak [3.5.1](https://github.com/DataDog/integrations-core/blob/master/riak/CHANGELOG.md) +* Scylla [2.7.2](https://github.com/DataDog/integrations-core/blob/master/scylla/CHANGELOG.md) +* Silk [2.2.1](https://github.com/DataDog/integrations-core/blob/master/silk/CHANGELOG.md) +* SNMP [7.3.1](https://github.com/DataDog/integrations-core/blob/master/snmp/CHANGELOG.md) +* Snowflake [5.6.0](https://github.com/DataDog/integrations-core/blob/master/snowflake/CHANGELOG.md) +* SonarQube [3.2.2](https://github.com/DataDog/integrations-core/blob/master/sonarqube/CHANGELOG.md) +* Spark [4.3.1](https://github.com/DataDog/integrations-core/blob/master/spark/CHANGELOG.md) +* SQL Server [17.3.0](https://github.com/DataDog/integrations-core/blob/master/sqlserver/CHANGELOG.md) +* Squid [2.5.1](https://github.com/DataDog/integrations-core/blob/master/squid/CHANGELOG.md) +* Strimzi [2.2.2](https://github.com/DataDog/integrations-core/blob/master/strimzi/CHANGELOG.md) +* TeamCity [4.2.2](https://github.com/DataDog/integrations-core/blob/master/teamcity/CHANGELOG.md) +* Tekton [1.0.2](https://github.com/DataDog/integrations-core/blob/master/tekton/CHANGELOG.md) +* Temporal [2.2.2](https://github.com/DataDog/integrations-core/blob/master/temporal/CHANGELOG.md) +* Teradata [2.2.1](https://github.com/DataDog/integrations-core/blob/master/teradata/CHANGELOG.md) +* TLS [2.17.0](https://github.com/DataDog/integrations-core/blob/master/tls/CHANGELOG.md) +* TorchServe [2.2.2](https://github.com/DataDog/integrations-core/blob/master/torchserve/CHANGELOG.md) +* Traefik Mesh [1.0.1](https://github.com/DataDog/integrations-core/blob/master/traefik_mesh/CHANGELOG.md) +* Traffic Server [2.2.1](https://github.com/DataDog/integrations-core/blob/master/traffic_server/CHANGELOG.md) +* Twistlock [3.6.1](https://github.com/DataDog/integrations-core/blob/master/twistlock/CHANGELOG.md) +* Vault [4.2.1](https://github.com/DataDog/integrations-core/blob/master/vault/CHANGELOG.md) +* VoltDB [3.2.1](https://github.com/DataDog/integrations-core/blob/master/voltdb/CHANGELOG.md) +* vSphere [7.5.3](https://github.com/DataDog/integrations-core/blob/master/vsphere/CHANGELOG.md) +* Weaviate [2.3.3](https://github.com/DataDog/integrations-core/blob/master/weaviate/CHANGELOG.md) +* Windows performance counters [2.1.1](https://github.com/DataDog/integrations-core/blob/master/windows_performance_counters/CHANGELOG.md) +* Windows Service [4.9.0](https://github.com/DataDog/integrations-core/blob/master/windows_service/CHANGELOG.md) +* Yarn [5.3.1](https://github.com/DataDog/integrations-core/blob/master/yarn/CHANGELOG.md) + ## Datadog Agent version [7.54.1](https://github.com/DataDog/datadog-agent/blob/master/CHANGELOG.rst#7541) * Cacti [2.1.1](https://github.com/DataDog/integrations-core/blob/master/cacti/CHANGELOG.md) diff --git a/AGENT_INTEGRATIONS.md b/AGENT_INTEGRATIONS.md index eb743c25c4cb1..a49b2197a1ef4 100644 --- a/AGENT_INTEGRATIONS.md +++ b/AGENT_INTEGRATIONS.md @@ -1,3 +1,196 @@ +## Datadog Agent version 7.55.0 + +* datadog-active-directory: 2.1.1 +* datadog-activemq-xml: 3.2.1 +* datadog-activemq: 3.1.0 +* datadog-aerospike: 2.2.2 +* datadog-airflow: 5.0.1 +* datadog-amazon-msk: 4.8.1 +* datadog-ambari: 4.2.1 +* datadog-apache: 4.5.1 +* datadog-arangodb: 2.2.2 +* datadog-argo-rollouts: 1.0.2 +* datadog-argo-workflows: 1.0.2 +* datadog-argocd: 2.4.2 +* datadog-aspdotnet: 2.1.1 +* datadog-avi-vantage: 4.2.2 +* datadog-azure-iot-edge: 4.2.1 +* datadog-boundary: 2.2.3 +* datadog-btrfs: 2.3.0 +* datadog-cacti: 2.1.1 +* datadog-calico: 2.2.2 +* datadog-cassandra-nodetool: 1.13.0 +* datadog-cassandra: 1.18.0 +* datadog-ceph: 2.10.0 +* datadog-cert-manager: 4.1.2 +* datadog-checkpoint-quantum-firewall: 1.0.0 +* datadog-checks-base: 36.8.0 +* datadog-checks-dependency-provider: 1.4.0 +* datadog-checks-downloader: 4.7.0 +* datadog-cilium: 3.5.1 +* datadog-cisco-aci: 2.8.0 +* datadog-cisco-secure-firewall: 1.0.0 +* datadog-citrix-hypervisor: 3.2.1 +* datadog-clickhouse: 3.5.0 +* datadog-cloud-foundry-api: 3.3.1 +* datadog-cloudera: 2.1.0 +* datadog-cockroachdb: 3.3.2 +* datadog-confluent-platform: 1.10.2 +* datadog-consul: 2.6.1 +* datadog-coredns: 3.2.3 +* datadog-couch: 6.2.1 +* datadog-couchbase: 3.2.1 +* datadog-crio: 2.6.1 +* datadog-datadog-cluster-agent: 3.1.1 +* datadog-dcgm: 2.3.2 +* datadog-directory: 2.1.1 +* datadog-disk: 5.3.0 +* datadog-dns-check: 3.3.0 +* datadog-dotnetclr: 2.1.1 +* datadog-druid: 2.5.1 +* datadog-ecs-fargate: 4.3.1 +* datadog-eks-fargate: 4.2.1 +* datadog-elastic: 6.3.1 +* datadog-envoy: 3.5.1 +* datadog-esxi: 1.1.0 +* datadog-etcd: 6.2.1 +* datadog-exchange-server: 2.1.1 +* datadog-external-dns: 3.2.1 +* datadog-flink: 1.5.0 +* datadog-fluentd: 3.2.1 +* datadog-fluxcd: 1.2.2 +* datadog-foundationdb: 1.4.0 +* datadog-gearmand: 3.1.0 +* datadog-gitlab-runner: 4.2.1 +* datadog-gitlab: 7.3.2 +* datadog-glusterfs: 1.7.0 +* datadog-go-expvar: 2.5.1 +* datadog-gunicorn: 2.7.0 +* datadog-haproxy: 5.2.2 +* datadog-harbor: 3.2.2 +* datadog-hazelcast: 3.2.1 +* datadog-hdfs-datanode: 4.2.1 +* datadog-hdfs-namenode: 4.2.1 +* datadog-hive: 1.10.0 +* datadog-hivemq: 1.8.0 +* datadog-http-check: 9.6.0 +* datadog-hudi: 2.3.0 +* datadog-hyperv: 1.11.1 +* datadog-ibm-ace: 2.2.2 +* datadog-ibm-db2: 2.2.0 +* datadog-ibm-i: 2.2.0 +* datadog-ibm-mq: 6.3.0 +* datadog-ibm-was: 3.3.1 +* datadog-ignite: 2.4.0 +* datadog-iis: 3.1.1 +* datadog-impala: 2.2.2 +* datadog-istio: 6.1.2 +* datadog-jboss-wildfly: 2.2.0 +* datadog-journald: 1.2.0 +* datadog-kafka-consumer: 4.4.0 +* datadog-kafka: 2.16.0 +* datadog-karpenter: 1.4.1 +* datadog-kong: 3.2.2 +* datadog-kube-apiserver-metrics: 4.3.1 +* datadog-kube-controller-manager: 5.1.1 +* datadog-kube-dns: 4.4.1 +* datadog-kube-metrics-server: 3.3.1 +* datadog-kube-proxy: 6.3.1 +* datadog-kube-scheduler: 4.10.1 +* datadog-kubelet: 7.13.2 +* datadog-kubernetes-cluster-autoscaler: 1.0.1 +* datadog-kubernetes-state: 8.1.1 +* datadog-kyototycoon: 2.5.1 +* datadog-lighttpd: 3.5.1 +* datadog-linkerd: 4.2.2 +* datadog-linux-proc-extras: 2.5.0 +* datadog-mapr: 1.11.0 +* datadog-mapreduce: 4.2.1 +* datadog-marathon: 2.3.1 +* datadog-marklogic: 4.2.1 +* datadog-mcache: 4.1.0 +* datadog-mesos-master: 3.3.1 +* datadog-mesos-slave: 3.3.1 +* datadog-mongo: 6.5.0 +* datadog-mysql: 12.5.1 +* datadog-nagios: 1.13.0 +* datadog-network: 3.3.0 +* datadog-nfsstat: 1.13.0 +* datadog-nginx-ingress-controller: 2.6.1 +* datadog-nginx: 6.3.1 +* datadog-nvidia-triton: 1.2.2 +* datadog-openldap: 1.12.0 +* datadog-openmetrics: 4.2.2 +* datadog-openstack-controller: 6.6.1 +* datadog-openstack: 2.0.0 +* datadog-oracle: 5.2.0 +* datadog-palo-alto-panorama: 1.0.0 +* datadog-pan-firewall: 1.2.0 +* datadog-pdh-check: 2.1.0 +* datadog-pgbouncer: 6.2.0 +* datadog-php-fpm: 3.3.1 +* datadog-postfix: 1.14.0 +* datadog-postgres: 18.3.1 +* datadog-powerdns-recursor: 2.5.1 +* datadog-presto: 2.8.0 +* datadog-process: 3.3.0 +* datadog-prometheus: 3.6.0 +* datadog-proxysql: 5.1.1 +* datadog-pulsar: 2.2.2 +* datadog-rabbitmq: 5.3.2 +* datadog-ray: 1.2.2 +* datadog-redisdb: 5.5.0 +* datadog-rethinkdb: 3.1.0 +* datadog-riak: 3.5.1 +* datadog-riakcs: 2.11.0 +* datadog-sap-hana: 3.2.0 +* datadog-scylla: 2.7.2 +* datadog-sidekiq: 1.4.0 +* datadog-silk: 2.2.1 +* datadog-singlestore: 2.2.1 +* datadog-snmp: 7.3.1 +* datadog-snowflake: 5.6.0 +* datadog-solr: 1.13.0 +* datadog-sonarqube: 3.2.2 +* datadog-spark: 4.3.1 +* datadog-sqlserver: 17.3.0 +* datadog-squid: 2.5.1 +* datadog-ssh-check: 2.8.0 +* datadog-statsd: 1.12.0 +* datadog-strimzi: 2.2.2 +* datadog-supervisord: 2.6.0 +* datadog-system-core: 2.4.0 +* datadog-system-swap: 1.18.0 +* datadog-tcp-check: 4.8.0 +* datadog-teamcity: 4.2.2 +* datadog-tekton: 1.0.2 +* datadog-teleport: 1.0.0 +* datadog-temporal: 2.2.2 +* datadog-tenable: 1.5.0 +* datadog-teradata: 2.2.1 +* datadog-tls: 2.17.0 +* datadog-tokumx: 3.2.0 +* datadog-tomcat: 2.0.0 +* datadog-torchserve: 2.2.2 +* datadog-traefik-mesh: 1.0.1 +* datadog-traffic-server: 2.2.1 +* datadog-twemproxy: 1.15.0 +* datadog-twistlock: 3.6.1 +* datadog-varnish: 2.1.0 +* datadog-vault: 4.2.1 +* datadog-vertica: 4.5.0 +* datadog-voltdb: 3.2.1 +* datadog-vsphere: 7.5.3 +* datadog-weaviate: 2.3.3 +* datadog-weblogic: 1.3.0 +* datadog-win32-event-log: 3.3.0 +* datadog-windows-performance-counters: 2.1.1 +* datadog-windows-service: 4.9.0 +* datadog-wmi-check: 1.18.0 +* datadog-yarn: 5.3.1 +* datadog-zeek: 1.0.0 +* datadog-zk: 4.5.0 + ## Datadog Agent version 7.54.1 * datadog-active-directory: 2.1.0 diff --git a/active_directory/CHANGELOG.md b/active_directory/CHANGELOG.md index ba6c7abe547b0..d7463bff0312f 100644 --- a/active_directory/CHANGELOG.md +++ b/active_directory/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.1.1 / 2024-07-05 +## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/activemq_xml/CHANGELOG.md b/activemq_xml/CHANGELOG.md index ef5df75cb63cf..7c74e8eb0d1f0 100644 --- a/activemq_xml/CHANGELOG.md +++ b/activemq_xml/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.1 / 2024-05-31 +## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/aerospike/CHANGELOG.md b/aerospike/CHANGELOG.md index 32f1ff802259e..4b0b3ec18adf0 100644 --- a/aerospike/CHANGELOG.md +++ b/aerospike/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.2 / 2024-07-05 +## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/airflow/CHANGELOG.md b/airflow/CHANGELOG.md index 951dc89e7b143..ada89623eaa16 100644 --- a/airflow/CHANGELOG.md +++ b/airflow/CHANGELOG.md @@ -2,7 +2,7 @@ -## 5.0.1 / 2024-05-31 +## 5.0.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/ambari/CHANGELOG.md b/ambari/CHANGELOG.md index a530c7c933de2..cb56c1f85f6c4 100644 --- a/ambari/CHANGELOG.md +++ b/ambari/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-05-31 +## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/apache/CHANGELOG.md b/apache/CHANGELOG.md index 17f809a205e83..52dcc9dd075b0 100644 --- a/apache/CHANGELOG.md +++ b/apache/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.5.1 / 2024-05-31 +## 4.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/arangodb/CHANGELOG.md b/arangodb/CHANGELOG.md index 66cd3904766cd..1499f6af9c8b6 100644 --- a/arangodb/CHANGELOG.md +++ b/arangodb/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.2 / 2024-07-05 +## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/argo_rollouts/CHANGELOG.md b/argo_rollouts/CHANGELOG.md index 16233c8fb971e..810238652e243 100644 --- a/argo_rollouts/CHANGELOG.md +++ b/argo_rollouts/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.0.2 / 2024-07-05 +## 1.0.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/argo_workflows/CHANGELOG.md b/argo_workflows/CHANGELOG.md index 27b8c70071edc..724a50bd24b4b 100644 --- a/argo_workflows/CHANGELOG.md +++ b/argo_workflows/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.0.2 / 2024-07-05 +## 1.0.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/argocd/CHANGELOG.md b/argocd/CHANGELOG.md index 516224d5a961d..4d02fb5f6306a 100644 --- a/argocd/CHANGELOG.md +++ b/argocd/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.4.2 / 2024-07-05 +## 2.4.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/aspdotnet/CHANGELOG.md b/aspdotnet/CHANGELOG.md index 2281f65904532..7e6c0a8304bda 100644 --- a/aspdotnet/CHANGELOG.md +++ b/aspdotnet/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.1.1 / 2024-07-05 +## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/avi_vantage/CHANGELOG.md b/avi_vantage/CHANGELOG.md index a4ff677e86a5a..70191135600bc 100644 --- a/avi_vantage/CHANGELOG.md +++ b/avi_vantage/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.2 / 2024-07-05 +## 4.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/azure_iot_edge/CHANGELOG.md b/azure_iot_edge/CHANGELOG.md index 675406cffc9fd..b241df6656380 100644 --- a/azure_iot_edge/CHANGELOG.md +++ b/azure_iot_edge/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-05-31 +## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/boundary/CHANGELOG.md b/boundary/CHANGELOG.md index f84d17fc2e464..1a7b4dadb7cc3 100644 --- a/boundary/CHANGELOG.md +++ b/boundary/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.3 / 2024-07-05 +## 2.2.3 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/calico/CHANGELOG.md b/calico/CHANGELOG.md index 7ec41e9e56555..9d33959669968 100644 --- a/calico/CHANGELOG.md +++ b/calico/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.2 / 2024-07-05 +## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/cert_manager/CHANGELOG.md b/cert_manager/CHANGELOG.md index cebf4139db528..04d8d92eb4415 100644 --- a/cert_manager/CHANGELOG.md +++ b/cert_manager/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.1.2 / 2024-07-05 +## 4.1.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/cilium/CHANGELOG.md b/cilium/CHANGELOG.md index cb81a417ec8df..51db2f9f42d1a 100644 --- a/cilium/CHANGELOG.md +++ b/cilium/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.5.1 / 2024-07-05 +## 3.5.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/cisco_aci/CHANGELOG.md b/cisco_aci/CHANGELOG.md index 13400f3e1d18a..d0e36d4a56938 100644 --- a/cisco_aci/CHANGELOG.md +++ b/cisco_aci/CHANGELOG.md @@ -8,7 +8,7 @@ * Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) -## 2.8.0 / 2024-05-31 +## 2.8.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/citrix_hypervisor/CHANGELOG.md b/citrix_hypervisor/CHANGELOG.md index dd28cc616da6e..afcca29c1a323 100644 --- a/citrix_hypervisor/CHANGELOG.md +++ b/citrix_hypervisor/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.1 / 2024-05-31 +## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/cloud_foundry_api/CHANGELOG.md b/cloud_foundry_api/CHANGELOG.md index 1539e7b88dabb..514c21b3cb51b 100644 --- a/cloud_foundry_api/CHANGELOG.md +++ b/cloud_foundry_api/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.3.1 / 2024-05-31 +## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/cockroachdb/CHANGELOG.md b/cockroachdb/CHANGELOG.md index e910af1586645..004c4172e6fd6 100644 --- a/cockroachdb/CHANGELOG.md +++ b/cockroachdb/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.3.2 / 2024-07-05 +## 3.3.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/confluent_platform/CHANGELOG.md b/confluent_platform/CHANGELOG.md index c4808bdf37f79..57f21e6b58b0d 100644 --- a/confluent_platform/CHANGELOG.md +++ b/confluent_platform/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.10.2 / 2024-05-31 +## 1.10.2 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/consul/CHANGELOG.md b/consul/CHANGELOG.md index 887616d518378..f45d7a796d9cc 100644 --- a/consul/CHANGELOG.md +++ b/consul/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.6.1 / 2024-05-31 +## 2.6.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/coredns/CHANGELOG.md b/coredns/CHANGELOG.md index 7b1caab76161a..3cd9fbdbb6d8b 100644 --- a/coredns/CHANGELOG.md +++ b/coredns/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.3 / 2024-07-05 +## 3.2.3 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/couch/CHANGELOG.md b/couch/CHANGELOG.md index eab03a9032be8..3c0e6afeed988 100644 --- a/couch/CHANGELOG.md +++ b/couch/CHANGELOG.md @@ -2,7 +2,7 @@ -## 6.2.1 / 2024-05-31 +## 6.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/couchbase/CHANGELOG.md b/couchbase/CHANGELOG.md index 505e0a1670aa2..42bf59e5d5ec9 100644 --- a/couchbase/CHANGELOG.md +++ b/couchbase/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.1 / 2024-05-31 +## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/crio/CHANGELOG.md b/crio/CHANGELOG.md index 7a308bfa5672a..e9582ca684094 100644 --- a/crio/CHANGELOG.md +++ b/crio/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.6.1 / 2024-05-31 +## 2.6.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/datadog_checks_base/CHANGELOG.md b/datadog_checks_base/CHANGELOG.md index e44f7a44f1486..01208bf5dbff4 100644 --- a/datadog_checks_base/CHANGELOG.md +++ b/datadog_checks_base/CHANGELOG.md @@ -22,7 +22,7 @@ * Fix rate limiter in sync mode of DBMAsync job. Prior to this change, the DBMAsync job would not take into account the time of the job execution when throttling by the collection interval. ([#17893](https://github.com/DataDog/integrations-core/pull/17893)) -## 36.8.0 / 2024-06-13 +## 36.8.0 / 2024-06-13 / Agent 7.55.0 ***Added***: diff --git a/datadog_checks_downloader/CHANGELOG.md b/datadog_checks_downloader/CHANGELOG.md index 6c42a5ee3d46a..a35f35b258b6a 100644 --- a/datadog_checks_downloader/CHANGELOG.md +++ b/datadog_checks_downloader/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.7.0 / 2024-07-05 +## 4.7.0 / 2024-07-05 / Agent 7.55.0 ***Security***: diff --git a/datadog_cluster_agent/CHANGELOG.md b/datadog_cluster_agent/CHANGELOG.md index a1de4b8e5f73a..671edfaa5f66d 100644 --- a/datadog_cluster_agent/CHANGELOG.md +++ b/datadog_cluster_agent/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.1.1 / 2024-05-31 +## 3.1.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/dcgm/CHANGELOG.md b/dcgm/CHANGELOG.md index 881cd14cc4bdd..de6e465bbac36 100644 --- a/dcgm/CHANGELOG.md +++ b/dcgm/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.3.2 / 2024-07-05 +## 2.3.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/dotnetclr/CHANGELOG.md b/dotnetclr/CHANGELOG.md index 657319e1deb7d..a59c0bb6f7bda 100644 --- a/dotnetclr/CHANGELOG.md +++ b/dotnetclr/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.1.1 / 2024-07-05 +## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/druid/CHANGELOG.md b/druid/CHANGELOG.md index 38aa6d42da3d4..a91e913c30a40 100644 --- a/druid/CHANGELOG.md +++ b/druid/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.5.1 / 2024-05-31 +## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/ecs_fargate/CHANGELOG.md b/ecs_fargate/CHANGELOG.md index f272bf4788b29..91dd419f87730 100644 --- a/ecs_fargate/CHANGELOG.md +++ b/ecs_fargate/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.3.1 / 2024-05-31 +## 4.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/eks_fargate/CHANGELOG.md b/eks_fargate/CHANGELOG.md index 0ea59d3711b22..f1fc030324648 100644 --- a/eks_fargate/CHANGELOG.md +++ b/eks_fargate/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-05-31 +## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/elastic/CHANGELOG.md b/elastic/CHANGELOG.md index 2a7daa13540d5..258cfec54dcea 100644 --- a/elastic/CHANGELOG.md +++ b/elastic/CHANGELOG.md @@ -2,7 +2,7 @@ -## 6.3.1 / 2024-05-31 +## 6.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/envoy/CHANGELOG.md b/envoy/CHANGELOG.md index 2c496c498a554..a0905f94619b8 100644 --- a/envoy/CHANGELOG.md +++ b/envoy/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.5.1 / 2024-07-05 +## 3.5.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/esxi/CHANGELOG.md b/esxi/CHANGELOG.md index c8f56c5c2cb8a..fcf4fe6b50bee 100644 --- a/esxi/CHANGELOG.md +++ b/esxi/CHANGELOG.md @@ -13,7 +13,7 @@ * Properly submit percent metrics ([#17745](https://github.com/DataDog/integrations-core/pull/17745)) * Maintain a long lived connection to ESXi host. ([#17919](https://github.com/DataDog/integrations-core/pull/17919)) -## 1.1.0 / 2024-05-31 +## 1.1.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/etcd/CHANGELOG.md b/etcd/CHANGELOG.md index f46b3a6f29c76..57b2c631e5d72 100644 --- a/etcd/CHANGELOG.md +++ b/etcd/CHANGELOG.md @@ -8,7 +8,7 @@ * Fix prometheus entry ([#17878](https://github.com/DataDog/integrations-core/pull/17878)) -## 6.2.1 / 2024-05-31 +## 6.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/exchange_server/CHANGELOG.md b/exchange_server/CHANGELOG.md index 83342e0c06d76..c6f9ca2ce6bdc 100644 --- a/exchange_server/CHANGELOG.md +++ b/exchange_server/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.1.1 / 2024-07-05 +## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/external_dns/CHANGELOG.md b/external_dns/CHANGELOG.md index 7a555ce247794..3733697fb3f00 100644 --- a/external_dns/CHANGELOG.md +++ b/external_dns/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.1 / 2024-05-31 +## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/fluentd/CHANGELOG.md b/fluentd/CHANGELOG.md index a3eb0b89a5cf5..f31faf80eb304 100644 --- a/fluentd/CHANGELOG.md +++ b/fluentd/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.1 / 2024-05-31 +## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/fluxcd/CHANGELOG.md b/fluxcd/CHANGELOG.md index 9bb40820c6fc6..81ae3c594cf1a 100644 --- a/fluxcd/CHANGELOG.md +++ b/fluxcd/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.2.2 / 2024-07-05 +## 1.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/gitlab/CHANGELOG.md b/gitlab/CHANGELOG.md index 4479d76ffe33d..d06f529797674 100644 --- a/gitlab/CHANGELOG.md +++ b/gitlab/CHANGELOG.md @@ -2,7 +2,7 @@ -## 7.3.2 / 2024-07-05 +## 7.3.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/gitlab_runner/CHANGELOG.md b/gitlab_runner/CHANGELOG.md index 15a13293c64ea..e5a69412ff9bb 100644 --- a/gitlab_runner/CHANGELOG.md +++ b/gitlab_runner/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-05-31 +## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/go_expvar/CHANGELOG.md b/go_expvar/CHANGELOG.md index d2329c6ef87e0..51ae775a7ffab 100644 --- a/go_expvar/CHANGELOG.md +++ b/go_expvar/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.5.1 / 2024-05-31 +## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/haproxy/CHANGELOG.md b/haproxy/CHANGELOG.md index 282a2b6bb71b6..e25ad134435f7 100644 --- a/haproxy/CHANGELOG.md +++ b/haproxy/CHANGELOG.md @@ -2,7 +2,7 @@ -## 5.2.2 / 2024-07-05 +## 5.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/harbor/CHANGELOG.md b/harbor/CHANGELOG.md index 151e90334d16d..6d2266292312b 100644 --- a/harbor/CHANGELOG.md +++ b/harbor/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.2 / 2024-05-31 +## 3.2.2 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/hazelcast/CHANGELOG.md b/hazelcast/CHANGELOG.md index 22db7a6ed4e84..892ded58a5ea9 100644 --- a/hazelcast/CHANGELOG.md +++ b/hazelcast/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.1 / 2024-05-31 +## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/hdfs_datanode/CHANGELOG.md b/hdfs_datanode/CHANGELOG.md index d03ad9807ea27..ecff9b07d0a6c 100644 --- a/hdfs_datanode/CHANGELOG.md +++ b/hdfs_datanode/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-05-31 +## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/hdfs_namenode/CHANGELOG.md b/hdfs_namenode/CHANGELOG.md index 4aad8d91d3703..2fe2bc6a923d1 100644 --- a/hdfs_namenode/CHANGELOG.md +++ b/hdfs_namenode/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-05-31 +## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/http_check/CHANGELOG.md b/http_check/CHANGELOG.md index b92776972ce4b..090c5804320f0 100644 --- a/http_check/CHANGELOG.md +++ b/http_check/CHANGELOG.md @@ -8,7 +8,7 @@ * Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) -## 9.6.0 / 2024-05-31 +## 9.6.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/hyperv/CHANGELOG.md b/hyperv/CHANGELOG.md index 3e52ed973a704..1f6d22d131043 100644 --- a/hyperv/CHANGELOG.md +++ b/hyperv/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.11.1 / 2024-07-05 +## 1.11.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/ibm_was/CHANGELOG.md b/ibm_was/CHANGELOG.md index 7b67dc445c616..cd46af6b29b18 100644 --- a/ibm_was/CHANGELOG.md +++ b/ibm_was/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.3.1 / 2024-05-31 +## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/iis/CHANGELOG.md b/iis/CHANGELOG.md index cc30cdc6f2fe5..fb503d4f6ff1a 100644 --- a/iis/CHANGELOG.md +++ b/iis/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.1.1 / 2024-07-05 +## 3.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/impala/CHANGELOG.md b/impala/CHANGELOG.md index c4a532aec303e..a8f19fde8151f 100644 --- a/impala/CHANGELOG.md +++ b/impala/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.2 / 2024-07-05 +## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/istio/CHANGELOG.md b/istio/CHANGELOG.md index c2657c4043c28..6793e03925a0c 100644 --- a/istio/CHANGELOG.md +++ b/istio/CHANGELOG.md @@ -2,7 +2,7 @@ -## 6.1.2 / 2024-07-05 +## 6.1.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/kafka/CHANGELOG.md b/kafka/CHANGELOG.md index bfb262ac8a763..d4f83c373be41 100644 --- a/kafka/CHANGELOG.md +++ b/kafka/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.16.0 / 2024-05-31 +## 2.16.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/kafka_consumer/CHANGELOG.md b/kafka_consumer/CHANGELOG.md index ef39da030554e..e42c6027096f1 100644 --- a/kafka_consumer/CHANGELOG.md +++ b/kafka_consumer/CHANGELOG.md @@ -8,7 +8,7 @@ * Kafka consumer : add consumer group state as tag ([#17686](https://github.com/DataDog/integrations-core/pull/17686)) -## 4.4.0 / 2024-06-11 +## 4.4.0 / 2024-06-11 / Agent 7.55.0 ***Added***: diff --git a/karpenter/CHANGELOG.md b/karpenter/CHANGELOG.md index 0deedbd92e602..ef8dcb1cdea90 100644 --- a/karpenter/CHANGELOG.md +++ b/karpenter/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.4.1 / 2024-07-05 +## 1.4.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/kong/CHANGELOG.md b/kong/CHANGELOG.md index 7df0f17d56198..cfdfea80162ac 100644 --- a/kong/CHANGELOG.md +++ b/kong/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.2 / 2024-07-05 +## 3.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/kube_apiserver_metrics/CHANGELOG.md b/kube_apiserver_metrics/CHANGELOG.md index 1a1e7f424a13a..9083470245e69 100644 --- a/kube_apiserver_metrics/CHANGELOG.md +++ b/kube_apiserver_metrics/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.3.1 / 2024-05-31 +## 4.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_controller_manager/CHANGELOG.md b/kube_controller_manager/CHANGELOG.md index 100eb9dcdfec2..b9acc63878e8e 100644 --- a/kube_controller_manager/CHANGELOG.md +++ b/kube_controller_manager/CHANGELOG.md @@ -2,7 +2,7 @@ -## 5.1.1 / 2024-05-31 +## 5.1.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_dns/CHANGELOG.md b/kube_dns/CHANGELOG.md index af2947420b91b..487c9dd26defe 100644 --- a/kube_dns/CHANGELOG.md +++ b/kube_dns/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.4.1 / 2024-05-31 +## 4.4.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_metrics_server/CHANGELOG.md b/kube_metrics_server/CHANGELOG.md index c185de9f8de2a..0f82574aea7f7 100644 --- a/kube_metrics_server/CHANGELOG.md +++ b/kube_metrics_server/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.3.1 / 2024-05-31 +## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_proxy/CHANGELOG.md b/kube_proxy/CHANGELOG.md index 7b3a52c215788..e5081094ea5d1 100644 --- a/kube_proxy/CHANGELOG.md +++ b/kube_proxy/CHANGELOG.md @@ -2,7 +2,7 @@ -## 6.3.1 / 2024-05-31 +## 6.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_scheduler/CHANGELOG.md b/kube_scheduler/CHANGELOG.md index 91dbd3d21bdf9..126ff587da4de 100644 --- a/kube_scheduler/CHANGELOG.md +++ b/kube_scheduler/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.10.1 / 2024-05-31 +## 4.10.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kubelet/CHANGELOG.md b/kubelet/CHANGELOG.md index ab5f704a04e37..2162539234a4d 100644 --- a/kubelet/CHANGELOG.md +++ b/kubelet/CHANGELOG.md @@ -2,7 +2,7 @@ -## 7.13.2 / 2024-05-31 +## 7.13.2 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kubernetes_cluster_autoscaler/CHANGELOG.md b/kubernetes_cluster_autoscaler/CHANGELOG.md index 00b2987b26e01..4abc40d848cd8 100644 --- a/kubernetes_cluster_autoscaler/CHANGELOG.md +++ b/kubernetes_cluster_autoscaler/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.0.1 / 2024-07-05 +## 1.0.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/kubernetes_state/CHANGELOG.md b/kubernetes_state/CHANGELOG.md index ef63b513ac3fa..d0f2b1240e8be 100644 --- a/kubernetes_state/CHANGELOG.md +++ b/kubernetes_state/CHANGELOG.md @@ -2,7 +2,7 @@ -## 8.1.1 / 2024-05-31 +## 8.1.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kyototycoon/CHANGELOG.md b/kyototycoon/CHANGELOG.md index 4e52641ed2b0f..62d2b5030a242 100644 --- a/kyototycoon/CHANGELOG.md +++ b/kyototycoon/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.5.1 / 2024-05-31 +## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/lighttpd/CHANGELOG.md b/lighttpd/CHANGELOG.md index 5ce7c5b76f658..8e67921106b01 100644 --- a/lighttpd/CHANGELOG.md +++ b/lighttpd/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.5.1 / 2024-05-31 +## 3.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/linkerd/CHANGELOG.md b/linkerd/CHANGELOG.md index adf06380f6be1..27ac1f842880f 100644 --- a/linkerd/CHANGELOG.md +++ b/linkerd/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.2 / 2024-07-05 +## 4.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/mapreduce/CHANGELOG.md b/mapreduce/CHANGELOG.md index c8d801b1ac325..d507546a62623 100644 --- a/mapreduce/CHANGELOG.md +++ b/mapreduce/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-05-31 +## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/marathon/CHANGELOG.md b/marathon/CHANGELOG.md index a0f7ab65f4708..8847d6692d41e 100644 --- a/marathon/CHANGELOG.md +++ b/marathon/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.3.1 / 2024-05-31 +## 2.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/marklogic/CHANGELOG.md b/marklogic/CHANGELOG.md index 4ac2d97877283..ad29d9a97f4fc 100644 --- a/marklogic/CHANGELOG.md +++ b/marklogic/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-05-31 +## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/mesos_master/CHANGELOG.md b/mesos_master/CHANGELOG.md index d2040c55c8b62..e59d8523299d7 100644 --- a/mesos_master/CHANGELOG.md +++ b/mesos_master/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.3.1 / 2024-05-31 +## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/mesos_slave/CHANGELOG.md b/mesos_slave/CHANGELOG.md index ff1bfd44de5a0..176782ed6b405 100644 --- a/mesos_slave/CHANGELOG.md +++ b/mesos_slave/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.3.1 / 2024-05-31 +## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/mongo/CHANGELOG.md b/mongo/CHANGELOG.md index 409fbf34b6428..04368be5bc6e5 100644 --- a/mongo/CHANGELOG.md +++ b/mongo/CHANGELOG.md @@ -51,7 +51,7 @@ * Skip emitting mongodb samples on unexplainable operations ([#17785](https://github.com/DataDog/integrations-core/pull/17785)) -## 6.5.0 / 2024-05-31 +## 6.5.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/mysql/CHANGELOG.md b/mysql/CHANGELOG.md index 873e0c350bd0a..22cdb2dc17e94 100644 --- a/mysql/CHANGELOG.md +++ b/mysql/CHANGELOG.md @@ -14,7 +14,7 @@ * Fixed a bug in MySQL integration when trying to deconstruct None return ([#17873](https://github.com/DataDog/integrations-core/pull/17873)) * Fix metadata table source for MySQL 5.6 ([#17875](https://github.com/DataDog/integrations-core/pull/17875)) -## 12.5.1 / 2024-06-11 +## 12.5.1 / 2024-06-11 / Agent 7.55.0 ***Fixed***: diff --git a/nginx/CHANGELOG.md b/nginx/CHANGELOG.md index 0e2f6f435a7b7..ae0a14f71c0b3 100644 --- a/nginx/CHANGELOG.md +++ b/nginx/CHANGELOG.md @@ -2,7 +2,7 @@ -## 6.3.1 / 2024-05-31 +## 6.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/nginx_ingress_controller/CHANGELOG.md b/nginx_ingress_controller/CHANGELOG.md index 55598d3e2fcb9..0714ec7197410 100644 --- a/nginx_ingress_controller/CHANGELOG.md +++ b/nginx_ingress_controller/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.6.1 / 2024-05-31 +## 2.6.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/nvidia_triton/CHANGELOG.md b/nvidia_triton/CHANGELOG.md index 90d2f55f90ec1..6ae9bc7552b2a 100644 --- a/nvidia_triton/CHANGELOG.md +++ b/nvidia_triton/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.2.2 / 2024-07-05 +## 1.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/openmetrics/CHANGELOG.md b/openmetrics/CHANGELOG.md index 11f810e6b87a5..94b1a240f057d 100644 --- a/openmetrics/CHANGELOG.md +++ b/openmetrics/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.2 / 2024-07-05 +## 4.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/php_fpm/CHANGELOG.md b/php_fpm/CHANGELOG.md index b3f85365842ce..8439b00c7f9ca 100644 --- a/php_fpm/CHANGELOG.md +++ b/php_fpm/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.3.1 / 2024-05-31 +## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/powerdns_recursor/CHANGELOG.md b/powerdns_recursor/CHANGELOG.md index 246bb452d86ae..480424bc9ffd5 100644 --- a/powerdns_recursor/CHANGELOG.md +++ b/powerdns_recursor/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.5.1 / 2024-05-31 +## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/pulsar/CHANGELOG.md b/pulsar/CHANGELOG.md index 91acc9b95fcf6..66948396dd25a 100644 --- a/pulsar/CHANGELOG.md +++ b/pulsar/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.2 / 2024-07-05 +## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/rabbitmq/CHANGELOG.md b/rabbitmq/CHANGELOG.md index 9ee6c447883dc..9fbaa8646e4ed 100644 --- a/rabbitmq/CHANGELOG.md +++ b/rabbitmq/CHANGELOG.md @@ -2,7 +2,7 @@ -## 5.3.2 / 2024-07-05 +## 5.3.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/ray/CHANGELOG.md b/ray/CHANGELOG.md index 57e9fc563889a..4b650b6d1d0f5 100644 --- a/ray/CHANGELOG.md +++ b/ray/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.2.2 / 2024-07-05 +## 1.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/redisdb/CHANGELOG.md b/redisdb/CHANGELOG.md index 2639e775b966b..f8107ddcabf70 100644 --- a/redisdb/CHANGELOG.md +++ b/redisdb/CHANGELOG.md @@ -8,7 +8,7 @@ * Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)), ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) -## 5.5.0 / 2024-05-31 +## 5.5.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/riak/CHANGELOG.md b/riak/CHANGELOG.md index c627ffbeffc10..fd386528723f1 100644 --- a/riak/CHANGELOG.md +++ b/riak/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.5.1 / 2024-05-31 +## 3.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/scylla/CHANGELOG.md b/scylla/CHANGELOG.md index dab9bf97deac6..8dd77f2ac4b39 100644 --- a/scylla/CHANGELOG.md +++ b/scylla/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.7.2 / 2024-07-05 +## 2.7.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/silk/CHANGELOG.md b/silk/CHANGELOG.md index 91ed9c2b67e48..4a87d743b5103 100644 --- a/silk/CHANGELOG.md +++ b/silk/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.1 / 2024-05-31 +## 2.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/snmp/CHANGELOG.md b/snmp/CHANGELOG.md index d7e40e9150661..6db0a4fb338a6 100644 --- a/snmp/CHANGELOG.md +++ b/snmp/CHANGELOG.md @@ -2,7 +2,7 @@ -## 7.3.1 / 2024-06-05 +## 7.3.1 / 2024-06-05 / Agent 7.55.0 ***Fixed***: diff --git a/snowflake/CHANGELOG.md b/snowflake/CHANGELOG.md index 0e49138b24196..662762ffe40de 100644 --- a/snowflake/CHANGELOG.md +++ b/snowflake/CHANGELOG.md @@ -8,7 +8,7 @@ * Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) -## 5.6.0 / 2024-05-31 +## 5.6.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/sonarqube/CHANGELOG.md b/sonarqube/CHANGELOG.md index 90e06e810f176..2fc91bf9d2da2 100644 --- a/sonarqube/CHANGELOG.md +++ b/sonarqube/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.2 / 2024-05-31 +## 3.2.2 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/spark/CHANGELOG.md b/spark/CHANGELOG.md index c5de6e572bdc2..21b72babd766e 100644 --- a/spark/CHANGELOG.md +++ b/spark/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.3.1 / 2024-05-31 +## 4.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/sqlserver/CHANGELOG.md b/sqlserver/CHANGELOG.md index bbdcba36c45fa..b6039870ff69e 100644 --- a/sqlserver/CHANGELOG.md +++ b/sqlserver/CHANGELOG.md @@ -20,7 +20,7 @@ * Upgrade `azure-identity` dependency ([#17862](https://github.com/DataDog/integrations-core/pull/17862)) * Move sqlserver schema foreign key information to the dependent table. ([#17933](https://github.com/DataDog/integrations-core/pull/17933)) -## 17.3.0 / 2024-05-31 +## 17.3.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/squid/CHANGELOG.md b/squid/CHANGELOG.md index 189d6d93ff2b3..58787027a933b 100644 --- a/squid/CHANGELOG.md +++ b/squid/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.5.1 / 2024-05-31 +## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/strimzi/CHANGELOG.md b/strimzi/CHANGELOG.md index cae2d2cfbdc86..b59c5e81623fc 100644 --- a/strimzi/CHANGELOG.md +++ b/strimzi/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.2 / 2024-07-05 +## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/tekton/CHANGELOG.md b/tekton/CHANGELOG.md index 94a2a22c92363..0a4bf7722a6b3 100644 --- a/tekton/CHANGELOG.md +++ b/tekton/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.0.2 / 2024-07-05 +## 1.0.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/temporal/CHANGELOG.md b/temporal/CHANGELOG.md index 6ad6e038925de..81d43618dd807 100644 --- a/temporal/CHANGELOG.md +++ b/temporal/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.2 / 2024-07-05 +## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/teradata/CHANGELOG.md b/teradata/CHANGELOG.md index f880b9d552445..de8c8fa9c2dc6 100644 --- a/teradata/CHANGELOG.md +++ b/teradata/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.1 / 2024-07-05 +## 2.2.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/tls/CHANGELOG.md b/tls/CHANGELOG.md index a8b8f9574dba1..637e1050b7b35 100644 --- a/tls/CHANGELOG.md +++ b/tls/CHANGELOG.md @@ -8,7 +8,7 @@ * Update dependencies ([#17817](https://github.com/DataDog/integrations-core/pull/17817)) -## 2.17.0 / 2024-05-31 +## 2.17.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/torchserve/CHANGELOG.md b/torchserve/CHANGELOG.md index 6a29b632e62d7..f474da5017093 100644 --- a/torchserve/CHANGELOG.md +++ b/torchserve/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.2 / 2024-07-05 +## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/traefik_mesh/CHANGELOG.md b/traefik_mesh/CHANGELOG.md index c52800bc7e47a..89f9e1e5118b7 100644 --- a/traefik_mesh/CHANGELOG.md +++ b/traefik_mesh/CHANGELOG.md @@ -2,7 +2,7 @@ -## 1.0.1 / 2024-07-05 +## 1.0.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/traffic_server/CHANGELOG.md b/traffic_server/CHANGELOG.md index ce270b4fb322a..06e8f188cf62e 100644 --- a/traffic_server/CHANGELOG.md +++ b/traffic_server/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.2.1 / 2024-05-31 +## 2.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/twistlock/CHANGELOG.md b/twistlock/CHANGELOG.md index bc2728b5aacc0..74a8dcfc00523 100644 --- a/twistlock/CHANGELOG.md +++ b/twistlock/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.6.1 / 2024-05-31 +## 3.6.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/vault/CHANGELOG.md b/vault/CHANGELOG.md index 424d8ddb727fc..b1cfe64c077f3 100644 --- a/vault/CHANGELOG.md +++ b/vault/CHANGELOG.md @@ -2,7 +2,7 @@ -## 4.2.1 / 2024-07-05 +## 4.2.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/voltdb/CHANGELOG.md b/voltdb/CHANGELOG.md index c6a5e24e62a90..e167815ca6a0d 100644 --- a/voltdb/CHANGELOG.md +++ b/voltdb/CHANGELOG.md @@ -2,7 +2,7 @@ -## 3.2.1 / 2024-05-31 +## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/vsphere/CHANGELOG.md b/vsphere/CHANGELOG.md index cd751cd8eb62a..2fce7b2ab4b08 100644 --- a/vsphere/CHANGELOG.md +++ b/vsphere/CHANGELOG.md @@ -10,7 +10,7 @@ * Added more events/resource to be filtered in vSphere with event_resource_filters ([#17917](https://github.com/DataDog/integrations-core/pull/17917)) * Update dependencies ([#17953](https://github.com/DataDog/integrations-core/pull/17953)) -## 7.5.3 / 2024-05-31 +## 7.5.3 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/weaviate/CHANGELOG.md b/weaviate/CHANGELOG.md index 4392df252046a..688a9efc2a317 100644 --- a/weaviate/CHANGELOG.md +++ b/weaviate/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.3.3 / 2024-07-05 +## 2.3.3 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/windows_performance_counters/CHANGELOG.md b/windows_performance_counters/CHANGELOG.md index cbe6e755dd2e8..6f24ad891555c 100644 --- a/windows_performance_counters/CHANGELOG.md +++ b/windows_performance_counters/CHANGELOG.md @@ -2,7 +2,7 @@ -## 2.1.1 / 2024-07-05 +## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/windows_service/CHANGELOG.md b/windows_service/CHANGELOG.md index f376c119adf14..f64f337194fd3 100644 --- a/windows_service/CHANGELOG.md +++ b/windows_service/CHANGELOG.md @@ -8,7 +8,7 @@ * Using constant values instead of reassigning variables in each check run ([#17749](https://github.com/DataDog/integrations-core/pull/17749)) -## 4.9.0 / 2024-05-31 +## 4.9.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/yarn/CHANGELOG.md b/yarn/CHANGELOG.md index f381949c7417e..0a14da229694c 100644 --- a/yarn/CHANGELOG.md +++ b/yarn/CHANGELOG.md @@ -2,7 +2,7 @@ -## 5.3.1 / 2024-05-31 +## 5.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: From 2b81d078abbc019e20b2dc393393d4ee24cb96f0 Mon Sep 17 00:00:00 2001 From: David Ortiz Date: Thu, 11 Jul 2024 17:24:30 +0200 Subject: [PATCH 50/68] [datadog_cluster_agent] Add tagger and workloadmeta metrics (#18030) --- datadog_cluster_agent/changelog.d/18030.added | 1 + .../datadog_cluster_agent/check.py | 6 ++++++ datadog_cluster_agent/metadata.csv | 7 ++++++- .../tests/fixtures/metrics.txt | 21 ++++++++++++++++++- .../tests/test_datadog_cluster_agent.py | 6 ++++++ 5 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 datadog_cluster_agent/changelog.d/18030.added diff --git a/datadog_cluster_agent/changelog.d/18030.added b/datadog_cluster_agent/changelog.d/18030.added new file mode 100644 index 0000000000000..20235fb2f529e --- /dev/null +++ b/datadog_cluster_agent/changelog.d/18030.added @@ -0,0 +1 @@ +Add tagger and workloadmeta metrics diff --git a/datadog_cluster_agent/datadog_checks/datadog_cluster_agent/check.py b/datadog_cluster_agent/datadog_checks/datadog_cluster_agent/check.py index e582f16ae2006..052bd82214aa7 100644 --- a/datadog_cluster_agent/datadog_checks/datadog_cluster_agent/check.py +++ b/datadog_cluster_agent/datadog_checks/datadog_cluster_agent/check.py @@ -57,6 +57,12 @@ 'rate_limit_queries_remaining_min': 'datadog.rate_limit_queries.remaining_min', 'rate_limit_queries_reset': 'datadog.rate_limit_queries.reset', 'secret_backend__elapsed_ms': 'secret_backend.elapsed', + 'tagger_stored_entities': 'tagger.stored_entities', + 'tagger_updated_entities': 'tagger.updated_entities', + 'workloadmeta_events_received': 'workloadmeta.events_received', + 'workloadmeta_notifications_sent': 'workloadmeta.notifications_sent', + 'workloadmeta_stored_entities': 'workloadmeta.stored_entities', + 'workloadmeta_subscribers': 'workloadmeta.subscribers', } diff --git a/datadog_cluster_agent/metadata.csv b/datadog_cluster_agent/metadata.csv index 9ec87fa2b3f82..979d12072772d 100644 --- a/datadog_cluster_agent/metadata.csv +++ b/datadog_cluster_agent/metadata.csv @@ -56,5 +56,10 @@ datadog.cluster_agent.kubernetes_apiserver.emitted_events,count,,,,"Datadog even datadog.cluster_agent.kubernetes_apiserver.kube_events,count,,,,"Kubernetes events processed by the kubernetes_apiserver check",0,datadog_cluster_agent,apiserver events, datadog.cluster_agent.language_detection_dca_handler.processed_requests,count,,,,"The number of process language detection requests processed by the handler",0,datadog_cluster_agent,language detection processed requests, datadog.cluster_agent.language_detection_patcher.patches,count,,,,"The number of patch requests sent by the patcher to the kube api server",0,datadog_cluster_agent,language detection patches, - datadog.cluster_agent.secret_backend.elapsed,gauge,,millisecond,,The elapsed time of secret backend invocation,0,datadog_cluster_agent,secret backend elapsed time duration, +datadog.cluster_agent.tagger.stored_entities,gauge,,,,Number of entities stored in the tagger,0,datadog_cluster_agent,tagger stored entities, +datadog.cluster_agent.tagger.updated_entities,count,,,,Number of updates made to entities in the tagger,0,datadog_cluster_agent,tagger updated entities, +datadog.cluster_agent.workloadmeta.events_received,count,,,,Number of events received by workloadmeta,0,datadog_cluster_agent,workloadmeta events received, +datadog.cluster_agent.workloadmeta.notifications_sent,count,,,,Number of notifications sent by workloadmeta to its subscribers,0,datadog_cluster_agent,workloadmeta notifications sent, +datadog.cluster_agent.workloadmeta.stored_entities,gauge,,,,Number of entities stored in workloadmeta,0,datadog_cluster_agent,workloadmeta stored entities, +datadog.cluster_agent.workloadmeta.subscribers,gauge,,,,Number of workloadmeta subscribers,0,datadog_cluster_agent,workloadmeta subscribers, diff --git a/datadog_cluster_agent/tests/fixtures/metrics.txt b/datadog_cluster_agent/tests/fixtures/metrics.txt index 2b400082e1620..dc1ee15bee468 100644 --- a/datadog_cluster_agent/tests/fixtures/metrics.txt +++ b/datadog_cluster_agent/tests/fixtures/metrics.txt @@ -476,4 +476,23 @@ language_detection_dca_handler_processed_requests{status="success"} 3 # TYPE language_detection_patcher_patches counter language_detection_patcher_patches{namespace="default",owner_kind="Deployment",owner_name="dummy-dsd-app-java",status="error"} 1 language_detection_patcher_patches{namespace="default",owner_kind="Deployment",owner_name="dummy-dsd-app-java",status="retry"} 1 -language_detection_patcher_patches{namespace="default",owner_kind="Deployment",owner_name="dummy-python-app",status="success"} 1 \ No newline at end of file +language_detection_patcher_patches{namespace="default",owner_kind="Deployment",owner_name="dummy-python-app",status="success"} 1 +# HELP tagger_stored_entities Number of entities in the store. +# TYPE tagger_stored_entities gauge +tagger_stored_entities{prefix="internal",source="workloadmeta-static"} 1 +# HELP tagger_updated_entities Number of updates made to entities. +# TYPE tagger_updated_entities counter +tagger_updated_entities 2 +# HELP workloadmeta_events_received Number of events received by the workloadmeta store. +# TYPE workloadmeta_events_received counter +workloadmeta_events_received{kind="kubernetes_node",source="kubeapiserver"} 1 +# HELP workloadmeta_notifications_sent Number of notifications sent by workloadmeta to its subscribers +# TYPE workloadmeta_notifications_sent counter +workloadmeta_notifications_sent{status="success",subscriber_name="tagger-workloadmeta"} 1 +# HELP workloadmeta_pull_duration The time it takes to pull from the collectors (in seconds) +# HELP workloadmeta_stored_entities Number of entities in the store. +# TYPE workloadmeta_stored_entities gauge +workloadmeta_stored_entities{kind="kubernetes_node",source="kubeapiserver"} 1 +# HELP workloadmeta_subscribers Number of subscribers. +# TYPE workloadmeta_subscribers gauge +workloadmeta_subscribers 2 \ No newline at end of file diff --git a/datadog_cluster_agent/tests/test_datadog_cluster_agent.py b/datadog_cluster_agent/tests/test_datadog_cluster_agent.py index 17ecfff8bca83..0bae2b520a5f9 100644 --- a/datadog_cluster_agent/tests/test_datadog_cluster_agent.py +++ b/datadog_cluster_agent/tests/test_datadog_cluster_agent.py @@ -70,6 +70,12 @@ 'language_detection_dca_handler.processed_requests', 'language_detection_patcher.patches', 'secret_backend.elapsed', + 'tagger.stored_entities', + 'tagger.updated_entities', + 'workloadmeta.events_received', + 'workloadmeta.notifications_sent', + 'workloadmeta.stored_entities', + 'workloadmeta.subscribers', ] From 76d51f60fd9e30c776f25881108d4884b83f47d3 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Thu, 11 Jul 2024 17:36:23 +0200 Subject: [PATCH 51/68] Add process signatures for vLLM (#17980) * Add process signatures for vLLM * fix manifest json * feedback from processes team * process sig as suggested by processes team --- vllm/manifest.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vllm/manifest.json b/vllm/manifest.json index e61a63b6eadf9..342df8b3d6e9d 100644 --- a/vllm/manifest.json +++ b/vllm/manifest.json @@ -39,7 +39,10 @@ }, "service_checks": { "metadata_path": "assets/service_checks.json" - } + }, + "process_signatures": [ + "vllm.entrypoints.openai.api_server" + ] }, "monitors": { "token_throughput": "assets/monitors/token_throughput.json", From d49c572f0afa3b96e3db4c3eb6d8303808fc0123 Mon Sep 17 00:00:00 2001 From: Kyle Neale Date: Thu, 11 Jul 2024 10:41:07 -0700 Subject: [PATCH 52/68] enable public display for Traefik Mesh (#18032) --- traefik_mesh/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/traefik_mesh/manifest.json b/traefik_mesh/manifest.json index c5fe244c46ce3..702e5a630b759 100644 --- a/traefik_mesh/manifest.json +++ b/traefik_mesh/manifest.json @@ -2,7 +2,7 @@ "manifest_version": "2.0.0", "app_uuid": "8ace5f4d-ba92-4b68-acf0-20275c8c2a2a", "app_id": "traefik-mesh", - "display_on_public_website": false, + "display_on_public_website": true, "tile": { "overview": "README.md#Overview", "configuration": "README.md#Setup", From c4e89f36aa4b690f67290006c23e38d27c6e1906 Mon Sep 17 00:00:00 2001 From: bgoldberg122 Date: Thu, 11 Jul 2024 14:53:32 -0400 Subject: [PATCH 53/68] [ecos 1459] Move all marketplace further reading readme sections to the manifest (#17721) * Move all marketplace further reading readme sections to the manifest * rerun script * Update kafka/manifest.json * Apply suggestions from code review * Update openai/manifest.json * Update snmp/manifest.json * Update kafka/manifest.json * Update spark/manifest.json * re-run script * Apply suggestions from code review * Update voltdb/manifest.json * Apply suggestions from code review * Update voltdb/manifest.json * Update snmp_f5/manifest.json --- activemq/manifest.json | 10 +++++++ activemq_xml/manifest.json | 6 +++++ amazon_eks/manifest.json | 14 ++++++++++ amazon_msk/manifest.json | 6 +++++ apache/manifest.json | 14 ++++++++++ azure_iot_edge/manifest.json | 6 +++++ calico/manifest.json | 6 +++++ cassandra/manifest.json | 14 ++++++++++ cassandra_nodetool/manifest.json | 14 ++++++++++ ceph/manifest.json | 6 +++++ citrix_hypervisor/manifest.json | 6 +++++ cloudera/manifest.json | 6 +++++ cockroachdb/manifest.json | 6 +++++ consul/manifest.json | 26 +++++++++++++++++++ coredns/manifest.json | 14 ++++++++++ couch/manifest.json | 6 +++++ couchbase/manifest.json | 6 +++++ docker_daemon/manifest.json | 26 +++++++++++++++++++ ecs_fargate/manifest.json | 26 +++++++++++++++++++ eks_anywhere/manifest.json | 14 ++++++++++ eks_fargate/manifest.json | 14 ++++++++++ elastic/manifest.json | 6 +++++ etcd/manifest.json | 18 +++++++++++++ fluentd/manifest.json | 6 +++++ fluxcd/manifest.json | 6 +++++ gke/manifest.json | 18 +++++++++++++ go_expvar/manifest.json | 6 +++++ gunicorn/manifest.json | 6 +++++ haproxy/manifest.json | 18 +++++++++++++ hdfs_datanode/manifest.json | 18 +++++++++++++ hdfs_namenode/manifest.json | 18 +++++++++++++ helm/manifest.json | 6 +++++ hivemq/manifest.json | 6 +++++ hyperv/manifest.json | 6 +++++ ibm_db2/manifest.json | 6 +++++ ibm_mq/manifest.json | 6 +++++ istio/manifest.json | 14 ++++++++++ jmeter/manifest.json | 6 +++++ kafka/manifest.json | 18 +++++++++++++ kafka_consumer/manifest.json | 14 ++++++++++ karpenter/manifest.json | 6 +++++ kong/manifest.json | 6 +++++ kubernetes/manifest.json | 6 +++++ kubernetes_state_core/manifest.json | 6 +++++ lighttpd/manifest.json | 6 +++++ mapreduce/manifest.json | 18 +++++++++++++ mcache/manifest.json | 14 ++++++++++ mesos_master/manifest.json | 6 +++++ mesos_slave/manifest.json | 6 +++++ mongo/manifest.json | 10 +++++++ mysql/manifest.json | 6 +++++ nagios/manifest.json | 6 +++++ nginx/manifest.json | 14 ++++++++++ oke/manifest.json | 6 +++++ openai/manifest.json | 10 +++++++ openmetrics/manifest.json | 10 +++++++ openstack/manifest.json | 14 ++++++++++ openstack_controller/manifest.json | 6 +++++ pan_firewall/manifest.json | 10 +++++++ postfix/manifest.json | 6 +++++ postgres/manifest.json | 22 ++++++++++++++++ process/manifest.json | 6 +++++ prometheus/manifest.json | 14 ++++++++++ rabbitmq/manifest.json | 14 ++++++++++ redisdb/manifest.json | 6 +++++ riakcs/manifest.json | 6 +++++ snmp/manifest.json | 10 +++++++ snmp_american_power_conversion/manifest.json | 6 +++++ snmp_arista/manifest.json | 6 +++++ snmp_aruba/manifest.json | 6 +++++ snmp_chatsworth_products/manifest.json | 6 +++++ snmp_check_point/manifest.json | 6 +++++ snmp_cisco/manifest.json | 6 +++++ snmp_dell/manifest.json | 6 +++++ snmp_f5/manifest.json | 10 +++++++ snmp_fortinet/manifest.json | 6 +++++ snmp_hewlett_packard_enterprise/manifest.json | 6 +++++ snmp_juniper/manifest.json | 10 +++++++ snmp_netapp/manifest.json | 6 +++++ snowflake/manifest.json | 6 +++++ spark/manifest.json | 10 +++++++ sqlserver/manifest.json | 26 +++++++++++++++++++ statsd/manifest.json | 10 +++++++ strimzi/manifest.json | 6 +++++ supervisord/manifest.json | 7 +++++ teamcity/manifest.json | 6 +++++ temporal/manifest.json | 6 +++++ tokumx/manifest.json | 6 +++++ tomcat/manifest.json | 14 ++++++++++ varnish/manifest.json | 14 ++++++++++ vault/manifest.json | 18 +++++++++++++ vsphere/manifest.json | 6 +++++ weaviate/manifest.json | 6 +++++ win32_event_log/manifest.json | 22 ++++++++++++++++ windows_performance_counters/manifest.json | 6 +++++ windows_service/manifest.json | 14 ++++++++++ yarn/manifest.json | 18 +++++++++++++ 97 files changed, 979 insertions(+) diff --git a/activemq/manifest.json b/activemq/manifest.json index b1037a8160795..17d263b3e079c 100644 --- a/activemq/manifest.json +++ b/activemq/manifest.json @@ -18,6 +18,16 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/activemq-architecture-and-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-activemq-metrics-performance" + } ] }, "author": { diff --git a/activemq_xml/manifest.json b/activemq_xml/manifest.json index 4522c0c5358e4..9a21fd7d584c3 100644 --- a/activemq_xml/manifest.json +++ b/activemq_xml/manifest.json @@ -18,6 +18,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-activemq-metrics-performance" + } ] }, "author": { diff --git a/amazon_eks/manifest.json b/amazon_eks/manifest.json index 740e7a6f97040..fde651a65b868 100644 --- a/amazon_eks/manifest.json +++ b/amazon_eks/manifest.json @@ -23,6 +23,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/announcing-eks" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/eks-cluster-metrics" + }, + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/integrations/eks_fargate/" + } ] }, "author": { diff --git a/amazon_msk/manifest.json b/amazon_msk/manifest.json index dd92a3fe42972..f527c878867ce 100644 --- a/amazon_msk/manifest.json +++ b/amazon_msk/manifest.json @@ -17,6 +17,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-amazon-msk/" + } ] }, "author": { diff --git a/apache/manifest.json b/apache/manifest.json index bbb89a261015e..c6930f5a3a2cb 100644 --- a/apache/manifest.json +++ b/apache/manifest.json @@ -17,6 +17,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-apache-web-server-performance" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collect-apache-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-apache-web-server-datadog" + } ] }, "author": { diff --git a/azure_iot_edge/manifest.json b/azure_iot_edge/manifest.json index 3ba9fb4af263c..ec6cb6c215385 100644 --- a/azure_iot_edge/manifest.json +++ b/azure_iot_edge/manifest.json @@ -20,6 +20,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-azure-iot-edge-with-datadog/" + } ] }, "author": { diff --git a/calico/manifest.json b/calico/manifest.json index a1f80b3ca2acb..146ddb8487294 100644 --- a/calico/manifest.json +++ b/calico/manifest.json @@ -23,6 +23,12 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-calico-with-datadog/" + } ] }, "author": { diff --git a/cassandra/manifest.json b/cassandra/manifest.json index 57994b74b8c64..47cffec5908fe 100644 --- a/cassandra/manifest.json +++ b/cassandra/manifest.json @@ -19,6 +19,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-monitor-cassandra-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-collect-cassandra-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-cassandra-with-datadog" + } ] }, "author": { diff --git a/cassandra_nodetool/manifest.json b/cassandra_nodetool/manifest.json index 7416b7229aa88..25776e345a9bb 100644 --- a/cassandra_nodetool/manifest.json +++ b/cassandra_nodetool/manifest.json @@ -17,6 +17,20 @@ "Supported OS::Windows", "Category::Data Stores", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-monitor-cassandra-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-collect-cassandra-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-cassandra-with-datadog" + } ] }, "author": { diff --git a/ceph/manifest.json b/ceph/manifest.json index e90e7a9bdba3d..9c88ce17e930d 100644 --- a/ceph/manifest.json +++ b/ceph/manifest.json @@ -18,6 +18,12 @@ "Category::OS & System", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-ceph-datadog" + } ] }, "author": { diff --git a/citrix_hypervisor/manifest.json b/citrix_hypervisor/manifest.json index c9b0fe7614a12..1fc9f3cf1c832 100644 --- a/citrix_hypervisor/manifest.json +++ b/citrix_hypervisor/manifest.json @@ -18,6 +18,12 @@ "Category::Cloud", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-citrix-hypervisor-datadog/" + } ] }, "author": { diff --git a/cloudera/manifest.json b/cloudera/manifest.json index 5736e9a140bbf..b522ab82d16ef 100644 --- a/cloudera/manifest.json +++ b/cloudera/manifest.json @@ -19,6 +19,12 @@ "Category::Data Stores", "Submitted Data Type::Metrics", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/cloudera-integration-announcement/" + } ] }, "assets": { diff --git a/cockroachdb/manifest.json b/cockroachdb/manifest.json index a9cd078000486..e8f3b29363cbd 100644 --- a/cockroachdb/manifest.json +++ b/cockroachdb/manifest.json @@ -22,6 +22,12 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-cockroachdb-performance-metrics-with-datadog" + } ] }, "author": { diff --git a/consul/manifest.json b/consul/manifest.json index 96398f26e9265..e84388ab60a12 100644 --- a/consul/manifest.json +++ b/consul/manifest.json @@ -22,6 +22,32 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/integrations/guide/hcp-consul" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-consul-health-and-performance-with-datadog" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/engineering/consul-at-datadog/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/consul-metrics/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/consul-monitoring-tools/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/consul-datadog/" + } ] }, "author": { diff --git a/coredns/manifest.json b/coredns/manifest.json index 2e0f19e549a39..bd5cbd4514dfa 100644 --- a/coredns/manifest.json +++ b/coredns/manifest.json @@ -19,6 +19,20 @@ "Category::Network", "Supported OS::Linux", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/coredns-metrics/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/coredns-monitoring-tools/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-coredns-with-datadog/" + } ] }, "author": { diff --git a/couch/manifest.json b/couch/manifest.json index 95c48ab29f57b..f41d007011729 100644 --- a/couch/manifest.json +++ b/couch/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-couchdb-with-datadog" + } ] }, "author": { diff --git a/couchbase/manifest.json b/couchbase/manifest.json index 6a15e1aa9a4ff..c7aee08f3edad 100644 --- a/couchbase/manifest.json +++ b/couchbase/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-couchbase-performance-datadog" + } ] }, "author": { diff --git a/docker_daemon/manifest.json b/docker_daemon/manifest.json index cebe0aa294928..6d3c015116278 100644 --- a/docker_daemon/manifest.json +++ b/docker_daemon/manifest.json @@ -18,6 +18,32 @@ "Category::Log Collection", "Category::Network", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/agent/guide/compose-and-the-datadog-agent" + }, + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/integrations/faq/dogstatsd-and-docker" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/the-docker-monitoring-problem" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-monitor-docker-resource-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-collect-docker-metrics" + }, + { + "resource_type": "documentation", + "url": "https://www.datadoghq.com/docker-adoption" + } ] }, "author": { diff --git a/ecs_fargate/manifest.json b/ecs_fargate/manifest.json index d1bd069835764..54b7e9f4dcafa 100644 --- a/ecs_fargate/manifest.json +++ b/ecs_fargate/manifest.json @@ -23,6 +23,32 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-aws-fargate" + }, + { + "resource_type": "documentation", + "url": "http://docs.datadoghq.com/integrations/faq/integration-setup-ecs-fargate" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collect-fargate-logs-with-firelens/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/aws-fargate-metrics/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/tools-for-collecting-aws-fargate-metrics/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/aws-fargate-monitoring-with-datadog/" + } ] }, "author": { diff --git a/eks_anywhere/manifest.json b/eks_anywhere/manifest.json index d58f286d3d704..3b19f2c89eec1 100644 --- a/eks_anywhere/manifest.json +++ b/eks_anywhere/manifest.json @@ -23,6 +23,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/announcing-eks" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/eks-cluster-metrics" + }, + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/integrations/eks_fargate/" + } ] }, "author": { diff --git a/eks_fargate/manifest.json b/eks_fargate/manifest.json index b7aae6ee9e335..e6e97bd8b7039 100644 --- a/eks_fargate/manifest.json +++ b/eks_fargate/manifest.json @@ -19,6 +19,20 @@ "Category::AWS", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/aws-fargate-metrics/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/tools-for-collecting-aws-fargate-metrics/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/aws-fargate-monitoring-with-datadog/" + } ] }, "author": { diff --git a/elastic/manifest.json b/elastic/manifest.json index 0b5107c107aa7..8b63db5eea9d6 100644 --- a/elastic/manifest.json +++ b/elastic/manifest.json @@ -23,6 +23,12 @@ "Submitted Data Type::Traces", "Submitted Data Type::Events", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-elasticsearch-performance-metrics" + } ] }, "author": { diff --git a/etcd/manifest.json b/etcd/manifest.json index 8e45bc84b49bb..be65fa46ea6cc 100644 --- a/etcd/manifest.json +++ b/etcd/manifest.json @@ -20,6 +20,24 @@ "Category::Configuration & Deployment", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-etcd-performance" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-etcd-with-datadog/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/etcd-monitoring-tools/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/etcd-key-metrics/" + } ] }, "author": { diff --git a/fluentd/manifest.json b/fluentd/manifest.json index 680662f237ef3..d2d93e4efa8b7 100644 --- a/fluentd/manifest.json +++ b/fluentd/manifest.json @@ -18,6 +18,12 @@ "Category::Metrics", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-fluentd-datadog" + } ] }, "author": { diff --git a/fluxcd/manifest.json b/fluxcd/manifest.json index a11346e8199d8..ce5e3df79e61b 100644 --- a/fluxcd/manifest.json +++ b/fluxcd/manifest.json @@ -20,6 +20,12 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/container-native-integrations/#cicd-with-flux" + } ] }, "author": { diff --git a/gke/manifest.json b/gke/manifest.json index 0cb241e9a5890..25ba22823e37d 100644 --- a/gke/manifest.json +++ b/gke/manifest.json @@ -18,6 +18,24 @@ "Category::Containers", "Category::Orchestration", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/gke-autopilot-monitoring/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-google-kubernetes-engine/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-tau-t2a-gke-workloads-with-datadog-arm-support/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/gke-dashboards-integration-improvements/" + } ] }, "author": { diff --git a/go_expvar/manifest.json b/go_expvar/manifest.json index 541c880cdee07..5481730494fa4 100644 --- a/go_expvar/manifest.json +++ b/go_expvar/manifest.json @@ -17,6 +17,12 @@ "Supported OS::Windows", "Category::Languages", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/instrument-go-apps-expvar-datadog" + } ] }, "author": { diff --git a/gunicorn/manifest.json b/gunicorn/manifest.json index 7386020061801..0134568bbeacb 100644 --- a/gunicorn/manifest.json +++ b/gunicorn/manifest.json @@ -16,6 +16,12 @@ "Supported OS::Linux", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-gunicorn-performance" + } ] }, "author": { diff --git a/haproxy/manifest.json b/haproxy/manifest.json index cad69bef849d7..a442ef2d7bb0b 100644 --- a/haproxy/manifest.json +++ b/haproxy/manifest.json @@ -17,6 +17,24 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-haproxy-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-collect-haproxy-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-haproxy-with-datadog" + }, + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/integrations/faq/haproxy-multi-process/" + } ] }, "author": { diff --git a/hdfs_datanode/manifest.json b/hdfs_datanode/manifest.json index bdbe5381459bc..f644166fc7507 100644 --- a/hdfs_datanode/manifest.json +++ b/hdfs_datanode/manifest.json @@ -17,6 +17,24 @@ "Supported OS::Linux", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/hadoop-architecture-overview" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hadoop-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collecting-hadoop-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hadoop-metrics-datadog" + } ] }, "author": { diff --git a/hdfs_namenode/manifest.json b/hdfs_namenode/manifest.json index 54321788f4620..84d59e5b5bf81 100644 --- a/hdfs_namenode/manifest.json +++ b/hdfs_namenode/manifest.json @@ -17,6 +17,24 @@ "Supported OS::Linux", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/hadoop-architecture-overview" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hadoop-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collecting-hadoop-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hadoop-metrics-datadog" + } ] }, "author": { diff --git a/helm/manifest.json b/helm/manifest.json index 41853359abcfe..4f03ead7e996b 100644 --- a/helm/manifest.json +++ b/helm/manifest.json @@ -18,6 +18,12 @@ "Category::Configuration & Deployment", "Category::Containers", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-helm-kubernetes-with-datadog/" + } ] }, "author": { diff --git a/hivemq/manifest.json b/hivemq/manifest.json index 0e63d45f094b0..e04ff5082c2b5 100644 --- a/hivemq/manifest.json +++ b/hivemq/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/hivemq-opentelemetry-monitor-iot-applications/" + } ] }, "author": { diff --git a/hyperv/manifest.json b/hyperv/manifest.json index 6b5b27549e390..9acd6f3d1d05b 100644 --- a/hyperv/manifest.json +++ b/hyperv/manifest.json @@ -16,6 +16,12 @@ "Category::OS & System", "Supported OS::Windows", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-microsoft-hyperv-with-datadog" + } ] }, "author": { diff --git a/ibm_db2/manifest.json b/ibm_db2/manifest.json index c0ca782875e54..3d4c4728b2345 100644 --- a/ibm_db2/manifest.json +++ b/ibm_db2/manifest.json @@ -18,6 +18,12 @@ "Category::Data Stores", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-db2-with-datadog" + } ] }, "author": { diff --git a/ibm_mq/manifest.json b/ibm_mq/manifest.json index 879f9dd7be1d2..2c76fbe4f30f7 100644 --- a/ibm_mq/manifest.json +++ b/ibm_mq/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-ibmmq-with-datadog" + } ] }, "author": { diff --git a/istio/manifest.json b/istio/manifest.json index 8baa839adbf1f..cfba14151ac87 100644 --- a/istio/manifest.json +++ b/istio/manifest.json @@ -22,6 +22,20 @@ "Submitted Data Type::Logs", "Submitted Data Type::Traces", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-istio-with-datadog" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/istio-metrics/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/istio-datadog/" + } ] }, "author": { diff --git a/jmeter/manifest.json b/jmeter/manifest.json index 591e0c57baef0..a0046dbd58215 100644 --- a/jmeter/manifest.json +++ b/jmeter/manifest.json @@ -18,6 +18,12 @@ "Category::Log Collection", "Category::Testing", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-jmeter-test-results-datadog/" + } ] }, "author": { diff --git a/kafka/manifest.json b/kafka/manifest.json index 1f48fc3759f1b..a9f240477cf26 100644 --- a/kafka/manifest.json +++ b/kafka/manifest.json @@ -20,6 +20,24 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-kafka-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collecting-kafka-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-kafka-with-datadog" + }, + { + "resource_type": "other", + "url": "https://www.datadoghq.com/knowledge-center/apache-kafka/" + } ] }, "author": { diff --git a/kafka_consumer/manifest.json b/kafka_consumer/manifest.json index 7fb0239e9cd02..5ca82773ce3d7 100644 --- a/kafka_consumer/manifest.json +++ b/kafka_consumer/manifest.json @@ -17,6 +17,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-kafka-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collecting-kafka-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-kafka-with-datadog" + } ] }, "author": { diff --git a/karpenter/manifest.json b/karpenter/manifest.json index d691f06a7e87d..100dc46bd92b2 100644 --- a/karpenter/manifest.json +++ b/karpenter/manifest.json @@ -22,6 +22,12 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/container-native-integrations/#autoscaling-and-resource-utilization-with-karpenter" + } ] }, "assets": { diff --git a/kong/manifest.json b/kong/manifest.json index 27c9f61b21a9b..4c6d299c02ecd 100644 --- a/kong/manifest.json +++ b/kong/manifest.json @@ -17,6 +17,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-kong-datadog" + } ] }, "author": { diff --git a/kubernetes/manifest.json b/kubernetes/manifest.json index 933424e32bbbb..0221fdb7ca10c 100644 --- a/kubernetes/manifest.json +++ b/kubernetes/manifest.json @@ -20,6 +20,12 @@ "Supported OS::Linux", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-kubernetes-era" + } ] }, "author": { diff --git a/kubernetes_state_core/manifest.json b/kubernetes_state_core/manifest.json index aecd760b0d280..13afc17837ce4 100644 --- a/kubernetes_state_core/manifest.json +++ b/kubernetes_state_core/manifest.json @@ -18,6 +18,12 @@ "Supported OS::macOS", "Supported OS::Windows", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/engineering/our-journey-taking-kubernetes-state-metrics-to-the-next-level/" + } ] }, "author": { diff --git a/lighttpd/manifest.json b/lighttpd/manifest.json index d0f499e0a4a87..2b4543dae12c8 100644 --- a/lighttpd/manifest.json +++ b/lighttpd/manifest.json @@ -17,6 +17,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-lighttpd-web-server-metrics" + } ] }, "author": { diff --git a/mapreduce/manifest.json b/mapreduce/manifest.json index 42b1a453c0ef9..cd680059c9ac5 100644 --- a/mapreduce/manifest.json +++ b/mapreduce/manifest.json @@ -17,6 +17,24 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/hadoop-architecture-overview" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hadoop-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collecting-hadoop-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hadoop-metrics-datadog" + } ] }, "author": { diff --git a/mcache/manifest.json b/mcache/manifest.json index 8f507124cc4d2..1101f8e2c8134 100644 --- a/mcache/manifest.json +++ b/mcache/manifest.json @@ -18,6 +18,20 @@ "Supported OS::Linux", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/speed-up-web-applications-memcached" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/instrument-memcached-performance-metrics-dogstatsd" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-elasticache-performance-metrics-with-redis-or-memcached" + } ] }, "author": { diff --git a/mesos_master/manifest.json b/mesos_master/manifest.json index 22f321698d10f..30959d9788792 100644 --- a/mesos_master/manifest.json +++ b/mesos_master/manifest.json @@ -19,6 +19,12 @@ "Category::Orchestration", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/deploy-datadog-dcos" + } ] }, "author": { diff --git a/mesos_slave/manifest.json b/mesos_slave/manifest.json index b0b4de278cd38..0a185461d4d49 100644 --- a/mesos_slave/manifest.json +++ b/mesos_slave/manifest.json @@ -20,6 +20,12 @@ "Supported OS::Linux", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/deploy-datadog-dcos" + } ] }, "author": { diff --git a/mongo/manifest.json b/mongo/manifest.json index 3347f1b3b7bd8..828353bbff96d 100644 --- a/mongo/manifest.json +++ b/mongo/manifest.json @@ -18,6 +18,16 @@ "Category::Data Stores", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-mongodb-performance-metrics-wiredtiger" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-mongodb-performance-metrics-mmap" + } ] }, "author": { diff --git a/mysql/manifest.json b/mysql/manifest.json index 9d261e1e6b2d9..8c85851c8c62e 100644 --- a/mysql/manifest.json +++ b/mysql/manifest.json @@ -18,6 +18,12 @@ "Category::Data Stores", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-mysql-performance-metrics" + } ] }, "author": { diff --git a/nagios/manifest.json b/nagios/manifest.json index 74d1f64a7ea37..3f7a09e16a00b 100644 --- a/nagios/manifest.json +++ b/nagios/manifest.json @@ -18,6 +18,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/nagios-monitoring" + } ] }, "author": { diff --git a/nginx/manifest.json b/nginx/manifest.json index c182e8b8a37f6..0c85b01ed20bd 100644 --- a/nginx/manifest.json +++ b/nginx/manifest.json @@ -18,6 +18,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-monitor-nginx" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-collect-nginx-metrics/index.html" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-monitor-nginx-with-datadog/index.html" + } ] }, "author": { diff --git a/oke/manifest.json b/oke/manifest.json index c64f8bd17d369..7b33e09ff665d 100644 --- a/oke/manifest.json +++ b/oke/manifest.json @@ -20,6 +20,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-oracle-kubernetes-engine/" + } ] }, "author": { diff --git a/openai/manifest.json b/openai/manifest.json index c2568d1b04c30..c2a1da9fbf6d2 100644 --- a/openai/manifest.json +++ b/openai/manifest.json @@ -38,6 +38,16 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-openai-with-datadog/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-azure-openai-with-datadog/" + } ] }, "assets": { diff --git a/openmetrics/manifest.json b/openmetrics/manifest.json index b378835a7ef13..5b261256b9e89 100644 --- a/openmetrics/manifest.json +++ b/openmetrics/manifest.json @@ -17,6 +17,16 @@ "Category::Metrics", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/agent/openmetrics/" + }, + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/developers/openmetrics/" + } ] }, "author": { diff --git a/openstack/manifest.json b/openstack/manifest.json index 1f03a8f9b7bc7..15d39a84f2cb7 100644 --- a/openstack/manifest.json +++ b/openstack/manifest.json @@ -23,6 +23,20 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/openstack-monitoring-nova" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/install-openstack-in-two-commands" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/openstack-host-aggregates-flavors-availability-zones" + } ] }, "author": { diff --git a/openstack_controller/manifest.json b/openstack_controller/manifest.json index d2b7071e62202..87fd1f895f5d9 100644 --- a/openstack_controller/manifest.json +++ b/openstack_controller/manifest.json @@ -23,6 +23,12 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/openstack-controller-integration/" + } ] }, "author": { diff --git a/pan_firewall/manifest.json b/pan_firewall/manifest.json index e41529395a897..5ea3ae820e9bc 100644 --- a/pan_firewall/manifest.json +++ b/pan_firewall/manifest.json @@ -20,6 +20,16 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "documentation", + "url": "https://docs.paloaltonetworks.com/pan-os/9-1/pan-os-admin/monitoring/use-syslog-for-monitoring/syslog-field-descriptions" + }, + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/logs/log_collection/?tab=tailexistingfiles#getting-started-with-the-agent" + } ] }, "author": { diff --git a/postfix/manifest.json b/postfix/manifest.json index 59e2f98a62c5e..19d217afed0d4 100644 --- a/postfix/manifest.json +++ b/postfix/manifest.json @@ -16,6 +16,12 @@ "Supported OS::Linux", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-postfix-queues" + } ] }, "author": { diff --git a/postgres/manifest.json b/postgres/manifest.json index 270329518877c..8013c6c83c432 100644 --- a/postgres/manifest.json +++ b/postgres/manifest.json @@ -20,6 +20,28 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/integrations/faq/postgres-custom-metric-collection-explained/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/100x-faster-postgres-performance-by-changing-1-line" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/postgresql-monitoring" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/postgresql-monitoring-tools" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collect-postgresql-data-with-datadog" + } ] }, "author": { diff --git a/process/manifest.json b/process/manifest.json index ea7d491ec6a50..9a6f31d3f90a6 100644 --- a/process/manifest.json +++ b/process/manifest.json @@ -17,6 +17,12 @@ "Supported OS::Windows", "Category::OS & System", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/process-check-monitoring" + } ] }, "author": { diff --git a/prometheus/manifest.json b/prometheus/manifest.json index e922cb1c9f609..07cd8b43eb4d6 100644 --- a/prometheus/manifest.json +++ b/prometheus/manifest.json @@ -17,6 +17,20 @@ "Category::Metrics", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-prometheus-metrics" + }, + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/agent/prometheus/" + }, + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/developers/prometheus/" + } ] }, "author": { diff --git a/rabbitmq/manifest.json b/rabbitmq/manifest.json index 9fc3fc502b9ef..38177b53b6efc 100644 --- a/rabbitmq/manifest.json +++ b/rabbitmq/manifest.json @@ -18,6 +18,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/rabbitmq-monitoring" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/rabbitmq-monitoring-tools" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-rabbitmq-performance-with-datadog" + } ] }, "author": { diff --git a/redisdb/manifest.json b/redisdb/manifest.json index 21c9b01b5b926..3b96ee935bd41 100644 --- a/redisdb/manifest.json +++ b/redisdb/manifest.json @@ -20,6 +20,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-monitor-redis-performance-metrics" + } ] }, "author": { diff --git a/riakcs/manifest.json b/riakcs/manifest.json index 4a51d658cb414..f76f025638f19 100644 --- a/riakcs/manifest.json +++ b/riakcs/manifest.json @@ -17,6 +17,12 @@ "Supported OS::Windows", "Category::Data Stores", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-riak-cs-performance-and-availability" + } ] }, "author": { diff --git a/snmp/manifest.json b/snmp/manifest.json index fde5bbb0de9cc..40d1432b49a96 100644 --- a/snmp/manifest.json +++ b/snmp/manifest.json @@ -19,6 +19,16 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + }, + { + "resource_type": "guide", + "url": "https://datadoghq.dev/integrations-core/tutorials/snmp/introduction/" + } ] }, "author": { diff --git a/snmp_american_power_conversion/manifest.json b/snmp_american_power_conversion/manifest.json index ff787c3667a77..2e3a52522ec3a 100644 --- a/snmp_american_power_conversion/manifest.json +++ b/snmp_american_power_conversion/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "assets": { diff --git a/snmp_arista/manifest.json b/snmp_arista/manifest.json index 324a4c4758697..fde42e37bcb43 100644 --- a/snmp_arista/manifest.json +++ b/snmp_arista/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "assets": { diff --git a/snmp_aruba/manifest.json b/snmp_aruba/manifest.json index 8533d777c41c3..840676c6d1c20 100644 --- a/snmp_aruba/manifest.json +++ b/snmp_aruba/manifest.json @@ -18,6 +18,12 @@ "Category::Notifications", "Category::Network", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "assets": { diff --git a/snmp_chatsworth_products/manifest.json b/snmp_chatsworth_products/manifest.json index a91418179897d..e54f03e76d8c6 100644 --- a/snmp_chatsworth_products/manifest.json +++ b/snmp_chatsworth_products/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "assets": { diff --git a/snmp_check_point/manifest.json b/snmp_check_point/manifest.json index 626632975c8f6..7110fdf679bec 100644 --- a/snmp_check_point/manifest.json +++ b/snmp_check_point/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "assets": { diff --git a/snmp_cisco/manifest.json b/snmp_cisco/manifest.json index 2357332edce40..c8d85bdc5a147 100644 --- a/snmp_cisco/manifest.json +++ b/snmp_cisco/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "author": { diff --git a/snmp_dell/manifest.json b/snmp_dell/manifest.json index 298b548dd3ba0..18765a2bc0c1e 100644 --- a/snmp_dell/manifest.json +++ b/snmp_dell/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "author": { diff --git a/snmp_f5/manifest.json b/snmp_f5/manifest.json index 29b4e5e4bac91..e4a67b9f51760 100644 --- a/snmp_f5/manifest.json +++ b/snmp_f5/manifest.json @@ -19,6 +19,16 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/network-device-monitoring/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "author": { diff --git a/snmp_fortinet/manifest.json b/snmp_fortinet/manifest.json index 9439206b59290..45c5c2d9a1620 100644 --- a/snmp_fortinet/manifest.json +++ b/snmp_fortinet/manifest.json @@ -18,6 +18,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "assets": { diff --git a/snmp_hewlett_packard_enterprise/manifest.json b/snmp_hewlett_packard_enterprise/manifest.json index 54b27cb13907e..f3127cde41167 100644 --- a/snmp_hewlett_packard_enterprise/manifest.json +++ b/snmp_hewlett_packard_enterprise/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "assets": { diff --git a/snmp_juniper/manifest.json b/snmp_juniper/manifest.json index 61f6d503f1a52..2d719e497e25f 100644 --- a/snmp_juniper/manifest.json +++ b/snmp_juniper/manifest.json @@ -19,6 +19,16 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-juniper-network-devices-with-datadog/" + } ] }, "author": { diff --git a/snmp_netapp/manifest.json b/snmp_netapp/manifest.json index 584f8f69f4f3d..9b3c3117bba16 100644 --- a/snmp_netapp/manifest.json +++ b/snmp_netapp/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-snmp-with-datadog/" + } ] }, "assets": { diff --git a/snowflake/manifest.json b/snowflake/manifest.json index 72c1b20f77a3a..73d14bf1c8daa 100644 --- a/snowflake/manifest.json +++ b/snowflake/manifest.json @@ -19,6 +19,12 @@ "Category::Data Stores", "Category::Cost Management", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/snowflake-monitoring-datadog/" + } ] }, "author": { diff --git a/spark/manifest.json b/spark/manifest.json index f15a46cecd844..43edad1405ed5 100644 --- a/spark/manifest.json +++ b/spark/manifest.json @@ -17,6 +17,16 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-spark" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/spark-emr-monitoring/" + } ] }, "author": { diff --git a/sqlserver/manifest.json b/sqlserver/manifest.json index eeeed1eff7800..4725aa264c7ba 100644 --- a/sqlserver/manifest.json +++ b/sqlserver/manifest.json @@ -18,6 +18,32 @@ "Category::Data Stores", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-azure-sql-databases-datadog" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/sql-server-monitoring" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/sql-server-monitoring-tools" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/sql-server-performance" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/sql-server-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/migrate-sql-workloads-to-azure-with-datadog/" + } ] }, "author": { diff --git a/statsd/manifest.json b/statsd/manifest.json index 29165347baf90..99376c45c6391 100644 --- a/statsd/manifest.json +++ b/statsd/manifest.json @@ -17,6 +17,16 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/statsd" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/visualize-statsd-metrics-counts-graphing" + } ] }, "author": { diff --git a/strimzi/manifest.json b/strimzi/manifest.json index fa92e72f1c8ee..fd6fe36862266 100644 --- a/strimzi/manifest.json +++ b/strimzi/manifest.json @@ -20,6 +20,12 @@ "Submitted Data Type::Logs", "Submitted Data Type::Metrics", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/container-native-integrations/#messaging-and-streaming-with-strimzi" + } ] }, "assets": { diff --git a/supervisord/manifest.json b/supervisord/manifest.json index e9e8aae801e18..ee8c5dcf8eff2 100644 --- a/supervisord/manifest.json +++ b/supervisord/manifest.json @@ -18,6 +18,12 @@ "Category::OS & System", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/supervisor-monitors-your-processes-datadog-monitors-supervisor" + } ] }, "author": { @@ -44,6 +50,7 @@ "metadata_path": "assets/service_checks.json" }, "process_signatures": [ + "python supervisord", "supervisord" ], "source_type_id": 116, diff --git a/teamcity/manifest.json b/teamcity/manifest.json index dcffd14824ec9..cc048ab80412b 100644 --- a/teamcity/manifest.json +++ b/teamcity/manifest.json @@ -19,6 +19,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/track-performance-impact-of-code-changes-with-teamcity-and-datadog" + } ] }, "author": { diff --git a/temporal/manifest.json b/temporal/manifest.json index b987177fa06e5..9d4e94e873c83 100644 --- a/temporal/manifest.json +++ b/temporal/manifest.json @@ -20,6 +20,12 @@ "Submitted Data Type::Metrics", "Submitted Data Type::Logs", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/temporal-server-integration/" + } ] }, "assets": { diff --git a/tokumx/manifest.json b/tokumx/manifest.json index 6c2e848b170b5..dcea86b3db702 100644 --- a/tokumx/manifest.json +++ b/tokumx/manifest.json @@ -18,6 +18,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-key-tokumx-metrics-mongodb-applications" + } ] }, "author": { diff --git a/tomcat/manifest.json b/tomcat/manifest.json index 5ffd7f45d64fd..69a2640a06151 100644 --- a/tomcat/manifest.json +++ b/tomcat/manifest.json @@ -18,6 +18,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-tomcat-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/tomcat-architecture-and-performance" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/analyzing-tomcat-logs-and-metrics-with-datadog" + } ] }, "author": { diff --git a/varnish/manifest.json b/varnish/manifest.json index b6630b09a3547..1726f6de3bf9b 100644 --- a/varnish/manifest.json +++ b/varnish/manifest.json @@ -19,6 +19,20 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/top-varnish-performance-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/how-to-collect-varnish-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-varnish-using-datadog" + } ] }, "author": { diff --git a/vault/manifest.json b/vault/manifest.json index bb7f395a4a94c..00bf722d512af 100644 --- a/vault/manifest.json +++ b/vault/manifest.json @@ -18,6 +18,24 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hashicorp-vault-with-datadog" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-vault-metrics-and-logs/" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/vault-monitoring-tools" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/vault-monitoring-with-datadog" + } ] }, "author": { diff --git a/vsphere/manifest.json b/vsphere/manifest.json index a34b0e1ba1bf6..02c6eab5c58f1 100644 --- a/vsphere/manifest.json +++ b/vsphere/manifest.json @@ -18,6 +18,12 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/unified-vsphere-app-monitoring-datadog/#auto-discovery-across-vm-and-app-layers" + } ] }, "author": { diff --git a/weaviate/manifest.json b/weaviate/manifest.json index bcad1920364a9..8821449963b1d 100644 --- a/weaviate/manifest.json +++ b/weaviate/manifest.json @@ -19,6 +19,12 @@ "Supported OS::macOS", "Submitted Data Type::Metrics", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/ai-integrations/" + } ] }, "assets": { diff --git a/win32_event_log/manifest.json b/win32_event_log/manifest.json index 8e0b2db4fb443..a9ab3dd773369 100644 --- a/win32_event_log/manifest.json +++ b/win32_event_log/manifest.json @@ -16,6 +16,28 @@ "Category::OS & System", "Category::Log Collection", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "documentation", + "url": "https://docs.datadoghq.com/agent/logs/advanced_log_collection/?tab=configurationfile" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-windows-server-2012" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collect-windows-server-2012-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/windows-server-monitoring" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-windows-event-logs-with-datadog/" + } ] }, "author": { diff --git a/windows_performance_counters/manifest.json b/windows_performance_counters/manifest.json index e4a9f1277e081..a04e04e9c2e35 100644 --- a/windows_performance_counters/manifest.json +++ b/windows_performance_counters/manifest.json @@ -16,6 +16,12 @@ "Category::IoT", "Category::OS & System", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/windows-performance-counters-datadog/" + } ] }, "author": { diff --git a/windows_service/manifest.json b/windows_service/manifest.json index eabbc8bec19d8..3977faba77a9e 100644 --- a/windows_service/manifest.json +++ b/windows_service/manifest.json @@ -15,6 +15,20 @@ "Supported OS::Windows", "Category::OS & System", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitoring-windows-server-2012" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collect-windows-server-2012-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/windows-server-monitoring" + } ] }, "author": { diff --git a/yarn/manifest.json b/yarn/manifest.json index 5a532cfe8b74d..d6bfbbc0ce5e5 100644 --- a/yarn/manifest.json +++ b/yarn/manifest.json @@ -17,6 +17,24 @@ "Supported OS::Windows", "Supported OS::macOS", "Offering::Integration" + ], + "resources": [ + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/hadoop-architecture-overview" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hadoop-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/collecting-hadoop-metrics" + }, + { + "resource_type": "blog", + "url": "https://www.datadoghq.com/blog/monitor-hadoop-metrics-datadog" + } ] }, "author": { From c823dc4abd499b2f6a1cd8ef6f318423e966784c Mon Sep 17 00:00:00 2001 From: taromn <54003207+taromn@users.noreply.github.com> Date: Fri, 12 Jul 2024 19:09:05 +0900 Subject: [PATCH 54/68] Modify the indents of yaml in README.md (#17977) --- process/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/process/README.md b/process/README.md index 29920438bb681..eb6fb3ef2caf1 100644 --- a/process/README.md +++ b/process/README.md @@ -21,10 +21,10 @@ While there's no standard default check configuration, here's an example `proces ```yaml init_config: instances: -- name: ssh - search_string: - - ssh - - sshd + - name: ssh + search_string: + - ssh + - sshd ``` **Note**: After you make configuration changes, make sure you [restart the Agent][4]. From e7ca951b1d429bdb2fab4d84223a71e9a99715c2 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Fri, 12 Jul 2024 14:48:44 +0200 Subject: [PATCH 55/68] Add Network Path integration metadata (#17984) Co-authored-by: Alicia Scott --- .github/workflows/config/labeler.yml | 2 + network_path/CHANGELOG.md | 7 +++ network_path/README.md | 60 +++++++++++++++++++++++++ network_path/assets/service_checks.json | 1 + network_path/manifest.json | 46 +++++++++++++++++++ network_path/metadata.csv | 13 ++++++ 6 files changed, 129 insertions(+) create mode 100644 network_path/CHANGELOG.md create mode 100644 network_path/README.md create mode 100644 network_path/assets/service_checks.json create mode 100644 network_path/manifest.json create mode 100644 network_path/metadata.csv diff --git a/.github/workflows/config/labeler.yml b/.github/workflows/config/labeler.yml index f9e29d2e43816..c1ec23a64ef55 100644 --- a/.github/workflows/config/labeler.yml +++ b/.github/workflows/config/labeler.yml @@ -309,6 +309,8 @@ integration/nagios: - nagios/**/* integration/network: - network/**/* +integration/network_path: +- network_path/**/* integration/nfsstat: - nfsstat/**/* integration/nginx: diff --git a/network_path/CHANGELOG.md b/network_path/CHANGELOG.md new file mode 100644 index 0000000000000..c675f856dba54 --- /dev/null +++ b/network_path/CHANGELOG.md @@ -0,0 +1,7 @@ +# CHANGELOG - Network Path + +## 1.0.0 / 2024-07-04 + +***Added***: + +* Initial Release \ No newline at end of file diff --git a/network_path/README.md b/network_path/README.md new file mode 100644 index 0000000000000..1a5d294396029 --- /dev/null +++ b/network_path/README.md @@ -0,0 +1,60 @@ +# Agent Check: Network Path + +## Overview + +Network Path integration collects traceroute data. + +## Setup + +### Installation + +The Network Path check is included in the [Datadog Agent][1] package. +No additional installation is needed. + +### Configuration + +Example configuration: + +```yaml +instances: + - hostname: example.com # endpoint hostname or IP + protocol: TCP + port: 443 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" + + ## optional configs: + # max_ttl: 30 # max traderoute TTL, default is 30 + # timeout: 10 # timeout in seconds of traceroute calls, default is 10s + + - hostname: + protocol: UDP + port: 53 + tags: + - "tag_key:tag_value" + - "tag_key2:tag_value2" +``` + +## Data Collected + +### Metrics + +Metrics are listed in `metadata.csv`. + +### Service Checks + +Network Path does not include any service checks. + +### Events + +Network Path does not include any events. + +## Troubleshooting + +Need help? Contact [Datadog support][2]. + +[1]: https://app.datadoghq.com/account/settings/agent/latest + +[2]: https://docs.datadoghq.com/help/ + diff --git a/network_path/assets/service_checks.json b/network_path/assets/service_checks.json new file mode 100644 index 0000000000000..fe51488c7066f --- /dev/null +++ b/network_path/assets/service_checks.json @@ -0,0 +1 @@ +[] diff --git a/network_path/manifest.json b/network_path/manifest.json new file mode 100644 index 0000000000000..e24d2080903d4 --- /dev/null +++ b/network_path/manifest.json @@ -0,0 +1,46 @@ +{ + "manifest_version": "2.0.0", + "app_uuid": "3913cf32-d869-4852-beda-9e3e9d9e2feb", + "app_id": "network-path", + "display_on_public_website": false, + "tile": { + "overview": "README.md#Overview", + "configuration": "README.md#Setup", + "support": "README.md#Support", + "changelog": "CHANGELOG.md", + "description": "Network Path integration collects traceroute data.", + "title": "Network Path", + "media": [], + "classifier_tags": [ + "Supported OS::Linux", + "Supported OS::Windows", + "Supported OS::macOS", + "Category::Network" + ] + }, + "assets": { + "integration": { + "source_type_name": "Network Path", + "configuration": {}, + "events": { + "creates_events": false + }, + "metrics": { + "prefix": "datadog.network_path.", + "check": "datadog.network_path.path.monitored", + "metadata_path": "metadata.csv" + }, + "service_checks": { + "metadata_path": "assets/service_checks.json" + }, + "source_type_id": 20095380, + "auto_install": true + } + }, + "author": { + "support_email": "help@datadoghq.com", + "name": "Datadog", + "homepage": "https://www.datadoghq.com", + "sales_email": "info@datadoghq.com" + } +} diff --git a/network_path/metadata.csv b/network_path/metadata.csv new file mode 100644 index 0000000000000..d8b4808ffb946 --- /dev/null +++ b/network_path/metadata.csv @@ -0,0 +1,13 @@ +metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags +datadog.network_path.check_duration,gauge,,second,,"The duration of a check run in seconds. The time needed for the network_path integration to traceroute one endpoint, including time to collect snmp data, processing and submitting metrics/events/etc.",0,network_path,,, +datadog.network_path.check_interval,gauge,,second,,"The interval between check runs in seconds. The time delta between current check run and last check run.",0,network_path,,, +datadog.network_path.collector.flush_duration,gauge,,second,,"The time needed to flush pathtest contexts.",0,network_path,,, +datadog.network_path.collector.flush_interval,gauge,,second,,"The interval between flushes of pathtest contexts.",0,network_path,,, +datadog.network_path.collector.pathtest_flushed_count,gauge,,,,"The number of pathtest contexts flushed.",0,network_path,,, +datadog.network_path.collector.pathtest_store_size,gauge,,,,"The number of pathtest contexts currently stored.",0,network_path,,, +datadog.network_path.collector.schedule_duration,gauge,,second,,"The time needed to schedule new connections that will be monitored via network path collector.",0,network_path,,, +datadog.network_path.collector.workers,gauge,,,,"The number of workers used to process pathtests concurrently.",0,network_path,,, +datadog.network_path.path.hops,gauge,,,,"The number of hops of the collected pathtrace (traceroute).",0,network_path,,, +datadog.network_path.path.monitored,gauge,,,,"Paths monitored count. Make 'sum by {X}' queries to count all the Paths with the tag X",0,network_path,,, +datadog.network_path.path.reachable,gauge,,,,"The value is 1 if the path is reachable, 0 otherwise. Reachability is determined by the status of the destination/target of the pathtest.",0,network_path,,, +datadog.network_path.path.unreachable,gauge,,,,"The value is 1 if the path is unreachable, 0 otherwise. Reachability is determined by the status of the destination/target of the pathtest.",0,network_path,,, From 21143ee676a12465f3f9c6e14bb3ad767fce2b8b Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Fri, 12 Jul 2024 15:27:03 +0200 Subject: [PATCH 56/68] Add network_path to codeowners (#18035) --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 96983168b4bce..7c93b44db01ed 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -111,6 +111,8 @@ manifest.json @DataDog/documentation @DataDog/agent-integrations /snmp/*.md @DataDog/network-device-monitoring @DataDog/agent-integrations @DataDog/documentation /snmp_*/ @DataDog/network-device-monitoring @DataDog/agent-integrations /snmp_*/*.md @DataDog/network-device-monitoring @DataDog/agent-integrations @DataDog/documentation +/network_path/ @DataDog/network-device-monitoring @DataDog/Networks @DataDog/agent-integrations +/network_path/*.md @DataDog/network-device-monitoring @DataDog/Networks @DataDog/agent-integrations @DataDog/documentation /datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/ @DataDog/network-device-monitoring @DataDog/agent-integrations /docs/developer/tutorials/snmp/ @DataDog/network-device-monitoring @DataDog/agent-integrations @DataDog/documentation From 668e7bb32ce547d4f58374484ac999e804f61494 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Fri, 12 Jul 2024 15:50:37 +0200 Subject: [PATCH 57/68] remove macOS support for network_path (#18034) --- network_path/manifest.json | 1 - 1 file changed, 1 deletion(-) diff --git a/network_path/manifest.json b/network_path/manifest.json index e24d2080903d4..81ed893be8825 100644 --- a/network_path/manifest.json +++ b/network_path/manifest.json @@ -14,7 +14,6 @@ "classifier_tags": [ "Supported OS::Linux", "Supported OS::Windows", - "Supported OS::macOS", "Category::Network" ] }, From 8a1d21e953e5ea6946846972d4df008386690634 Mon Sep 17 00:00:00 2001 From: Alex Torres Date: Fri, 12 Jul 2024 10:57:40 -0600 Subject: [PATCH 58/68] [dbm] Handles group replication metrics for MySQL version < 8.0.2 (#18024) * handle mysql group replication metrics for ver < 8.0.2 * updates tests * renames vars, fixes tests * adds changelog --- mysql/changelog.d/18024.fixed | 1 + mysql/datadog_checks/mysql/const.py | 4 ++++ mysql/datadog_checks/mysql/mysql.py | 33 +++++++++++++++++++-------- mysql/datadog_checks/mysql/queries.py | 11 +++++++++ mysql/tests/test_mysql.py | 13 +++++++++-- mysql/tests/variables.py | 9 +++++--- 6 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 mysql/changelog.d/18024.fixed diff --git a/mysql/changelog.d/18024.fixed b/mysql/changelog.d/18024.fixed new file mode 100644 index 0000000000000..712f53805e031 --- /dev/null +++ b/mysql/changelog.d/18024.fixed @@ -0,0 +1 @@ +Fixed group replication metrics for MySQL version < 8.0.2 diff --git a/mysql/datadog_checks/mysql/const.py b/mysql/datadog_checks/mysql/const.py index 8b4d0f765d264..fc2cb7d1f2e48 100644 --- a/mysql/datadog_checks/mysql/const.py +++ b/mysql/datadog_checks/mysql/const.py @@ -290,6 +290,10 @@ 'Transactions_check': ('mysql.replication.group.transactions_check', GAUGE), 'Conflict_detected': ('mysql.replication.group.conflicts_detected', GAUGE), 'Transactions_row_validating': ('mysql.replication.group.transactions_validating', GAUGE), +} + +# Metrics added to MySQL in 8.0.2 +GROUP_REPLICATION_VARS_8_0_2 = { 'Transactions_remote_applier_queue': ('mysql.replication.group.transactions_in_applier_queue', GAUGE), 'Transactions_remote_applied': ('mysql.replication.group.transactions_applied', GAUGE), 'Transactions_local_proposed': ('mysql.replication.group.transactions_proposed', GAUGE), diff --git a/mysql/datadog_checks/mysql/mysql.py b/mysql/datadog_checks/mysql/mysql.py index ddedc8a7d923d..0c77501ff5375 100644 --- a/mysql/datadog_checks/mysql/mysql.py +++ b/mysql/datadog_checks/mysql/mysql.py @@ -39,6 +39,7 @@ GALERA_VARS, GAUGE, GROUP_REPLICATION_VARS, + GROUP_REPLICATION_VARS_8_0_2, INNODB_VARS, MONOTONIC, OPTIONAL_STATUS_VARS, @@ -62,7 +63,9 @@ SQL_95TH_PERCENTILE, SQL_AVG_QUERY_RUN_TIME, SQL_GROUP_REPLICATION_MEMBER, + SQL_GROUP_REPLICATION_MEMBER_8_0_2, SQL_GROUP_REPLICATION_METRICS, + SQL_GROUP_REPLICATION_METRICS_8_0_2, SQL_GROUP_REPLICATION_PLUGIN_STATUS, SQL_INNODB_ENGINES, SQL_PROCESS_LIST, @@ -653,11 +656,14 @@ def _collect_replication_metrics(self, db, results, above_560): def _collect_group_replica_metrics(self, db, results): try: with closing(db.cursor(CommenterCursor)) as cursor: - cursor.execute(SQL_GROUP_REPLICATION_MEMBER) + # Version 8.0.2 introduced new columns to replication_group_members and replication_group_member_stats + above_802 = self.version.version_compatible((8, 0, 2)) + query_to_execute = SQL_GROUP_REPLICATION_MEMBER_8_0_2 if above_802 else SQL_GROUP_REPLICATION_MEMBER + cursor.execute(query_to_execute) replica_results = cursor.fetchone() status = self.OK additional_tags = [] - if replica_results is None or len(replica_results) < 3: + if replica_results is None or len(replica_results) < 2: self.log.warning( 'Unable to get group replica status, setting mysql.replication.group.status as CRITICAL' ) @@ -667,8 +673,9 @@ def _collect_group_replica_metrics(self, db, results): additional_tags = [ 'channel_name:{}'.format(replica_results[0]), 'member_state:{}'.format(replica_results[1]), - 'member_role:{}'.format(replica_results[2]), ] + if above_802 and len(replica_results) > 2: + additional_tags.append('member_role:{}'.format(replica_results[2])) self.gauge('mysql.replication.group.member_status', 1, tags=additional_tags + self.tags) self.service_check( @@ -677,7 +684,9 @@ def _collect_group_replica_metrics(self, db, results): tags=self._service_check_tags() + additional_tags, ) - cursor.execute(SQL_GROUP_REPLICATION_METRICS) + metrics_to_fetch = SQL_GROUP_REPLICATION_METRICS_8_0_2 if above_802 else SQL_GROUP_REPLICATION_METRICS + + cursor.execute(metrics_to_fetch) r = cursor.fetchone() if r is None: @@ -689,15 +698,19 @@ def _collect_group_replica_metrics(self, db, results): 'Transactions_check': r[2], 'Conflict_detected': r[3], 'Transactions_row_validating': r[4], - 'Transactions_remote_applier_queue': r[5], - 'Transactions_remote_applied': r[6], - 'Transactions_local_proposed': r[7], - 'Transactions_local_rollback': r[8], } + vars_to_submit = copy.deepcopy(GROUP_REPLICATION_VARS) + if above_802: + results['Transactions_remote_applier_queue'] = r[5] + results['Transactions_remote_applied'] = r[6] + results['Transactions_local_proposed'] = r[7] + results['Transactions_local_rollback'] = r[8] + vars_to_submit.update(GROUP_REPLICATION_VARS_8_0_2) + # Submit metrics now, so it's possible to attach `channel_name` tag - self._submit_metrics(GROUP_REPLICATION_VARS, results, self.tags + ['channel_name:{}'.format(r[0])]) + self._submit_metrics(vars_to_submit, results, self.tags + ['channel_name:{}'.format(r[0])]) - return GROUP_REPLICATION_VARS + return vars_to_submit except Exception as e: self.warning("Internal error happened during the group replication check: %s", e) return {} diff --git a/mysql/datadog_checks/mysql/queries.py b/mysql/datadog_checks/mysql/queries.py index 987aa0a3f89a1..c6f5c2932b4ed 100644 --- a/mysql/datadog_checks/mysql/queries.py +++ b/mysql/datadog_checks/mysql/queries.py @@ -59,12 +59,23 @@ WHERE server_id = @@aurora_server_id""" SQL_GROUP_REPLICATION_MEMBER = """\ +SELECT channel_name, member_state +FROM performance_schema.replication_group_members +WHERE member_id = @@server_uuid""" + +SQL_GROUP_REPLICATION_MEMBER_8_0_2 = """\ SELECT channel_name, member_state, member_role FROM performance_schema.replication_group_members WHERE member_id = @@server_uuid""" SQL_GROUP_REPLICATION_METRICS = """\ SELECT channel_name,count_transactions_in_queue,count_transactions_checked,count_conflicts_detected, +count_transactions_rows_validating +FROM performance_schema.replication_group_member_stats +WHERE channel_name IN ('group_replication_applier', 'group_replication_recovery') AND member_id = @@server_uuid""" + +SQL_GROUP_REPLICATION_METRICS_8_0_2 = """\ +SELECT channel_name,count_transactions_in_queue,count_transactions_checked,count_conflicts_detected, count_transactions_rows_validating,count_transactions_remote_in_applier_queue,count_transactions_remote_applied, count_transactions_local_proposed,count_transactions_local_rollback FROM performance_schema.replication_group_member_stats diff --git a/mysql/tests/test_mysql.py b/mysql/tests/test_mysql.py index 783cb12c9772e..2b099d2b4d3b6 100644 --- a/mysql/tests/test_mysql.py +++ b/mysql/tests/test_mysql.py @@ -17,6 +17,7 @@ BINLOG_VARS, GALERA_VARS, GROUP_REPLICATION_VARS, + GROUP_REPLICATION_VARS_8_0_2, INNODB_VARS, OPTIONAL_STATUS_VARS, OPTIONAL_STATUS_VARS_5_6_6, @@ -166,12 +167,16 @@ def _assert_complex_config(aggregator, service_check_tags, metric_tags, hostname operation_time_metrics = variables.SIMPLE_OPERATION_TIME_METRICS + variables.COMPLEX_OPERATION_TIME_METRICS if MYSQL_REPLICATION == 'group': + testable_metrics.extend(variables.GROUP_REPLICATION_VARS) + additional_tags = ['channel_name:group_replication_applier', 'member_state:ONLINE'] + if MYSQL_VERSION_PARSED >= parse_version('8.0'): + testable_metrics.extend(variables.GROUP_REPLICATION_VARS_8_0_2) + additional_tags.append('member_role:PRIMARY') aggregator.assert_service_check( 'mysql.replication.group.status', status=MySql.OK, - tags=service_check_tags - + ['channel_name:group_replication_applier', 'member_role:PRIMARY', 'member_state:ONLINE'], + tags=service_check_tags + additional_tags, count=1, ) operation_time_metrics.extend(variables.GROUP_REPLICATION_OPERATION_TIME_METRICS) @@ -531,6 +536,10 @@ def test_only_custom_queries(aggregator, dd_run_check, instance_custom_queries): GROUP_REPLICATION_VARS, variables.QUERY_EXECUTOR_METRIC_SETS, ] + + if MYSQL_VERSION_PARSED >= parse_version('8.0.2'): + standard_metric_sets.append(GROUP_REPLICATION_VARS_8_0_2) + for metric_set in standard_metric_sets: for metric_def in metric_set.values(): metric = metric_def[0] diff --git a/mysql/tests/variables.py b/mysql/tests/variables.py index 22f3b854ddaf7..246616bc1c426 100644 --- a/mysql/tests/variables.py +++ b/mysql/tests/variables.py @@ -267,12 +267,15 @@ 'mysql.replication.group.member_status', 'mysql.replication.group.conflicts_detected', 'mysql.replication.group.transactions', - 'mysql.replication.group.transactions_applied', - 'mysql.replication.group.transactions_in_applier_queue', 'mysql.replication.group.transactions_check', + 'mysql.replication.group.transactions_validating', +] + +GROUP_REPLICATION_VARS_8_0_2 = [ + 'mysql.replication.group.transactions_in_applier_queue', + 'mysql.replication.group.transactions_applied', 'mysql.replication.group.transactions_proposed', 'mysql.replication.group.transactions_rollback', - 'mysql.replication.group.transactions_validating', ] SIMPLE_OPERATION_TIME_METRICS = [ From 4711a0da0ea85f691093a9a23a1c64c275e38930 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?zoe=C2=A0=E2=9C=A8?= <9274242+zoedt@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:30:57 -0400 Subject: [PATCH 59/68] Add NDM as codeowners for Cisco ACI integration (#18036) --- .github/CODEOWNERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7c93b44db01ed..d9e9a61eea4ec 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -106,7 +106,8 @@ manifest.json @DataDog/documentation @DataDog/agent-integrations /tcp_queue_length/manifest.json @DataDog/container-integrations @DataDog/agent-integrations @DataDog/documentation # NDM -/cisco_sdwan/ @DataDog/network-device-monitoring @DataDog/agent-integrations +/cisco_aci/ @DataDog/network-device-monitoring @DataDog/agent-integrations +/cisco_sdwan/ @DataDog/network-device-monitoring @DataDog/agent-integrations /snmp/ @DataDog/network-device-monitoring @DataDog/agent-integrations /snmp/*.md @DataDog/network-device-monitoring @DataDog/agent-integrations @DataDog/documentation /snmp_*/ @DataDog/network-device-monitoring @DataDog/agent-integrations From 612279e0cc8ec674b6e2c6798dd1ea4e3c4e3cf0 Mon Sep 17 00:00:00 2001 From: "datadog-agent-integrations-bot[bot]" <159767151+datadog-agent-integrations-bot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 10:42:00 -0400 Subject: [PATCH 60/68] Finalize Agent release 7.55.1 (#18040) Co-authored-by: steveny91 --- AGENT_CHANGELOG.md | 4 + AGENT_INTEGRATIONS.md | 193 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 197 insertions(+) diff --git a/AGENT_CHANGELOG.md b/AGENT_CHANGELOG.md index b4f4fcb68fffc..f0dd60df97a24 100644 --- a/AGENT_CHANGELOG.md +++ b/AGENT_CHANGELOG.md @@ -1,3 +1,7 @@ +## Datadog Agent version [7.55.1](https://github.com/DataDog/datadog-agent/blob/master/CHANGELOG.rst#7551) + +* There were no integration updates for this version of the Agent. + ## Datadog Agent version [7.55.0](https://github.com/DataDog/datadog-agent/blob/master/CHANGELOG.rst#7550) * Active Directory [2.1.1](https://github.com/DataDog/integrations-core/blob/master/active_directory/CHANGELOG.md) diff --git a/AGENT_INTEGRATIONS.md b/AGENT_INTEGRATIONS.md index a49b2197a1ef4..671a72cc89562 100644 --- a/AGENT_INTEGRATIONS.md +++ b/AGENT_INTEGRATIONS.md @@ -1,3 +1,196 @@ +## Datadog Agent version 7.55.1 + +* datadog-active-directory: 2.1.1 +* datadog-activemq-xml: 3.2.1 +* datadog-activemq: 3.1.0 +* datadog-aerospike: 2.2.2 +* datadog-airflow: 5.0.1 +* datadog-amazon-msk: 4.8.1 +* datadog-ambari: 4.2.1 +* datadog-apache: 4.5.1 +* datadog-arangodb: 2.2.2 +* datadog-argo-rollouts: 1.0.2 +* datadog-argo-workflows: 1.0.2 +* datadog-argocd: 2.4.2 +* datadog-aspdotnet: 2.1.1 +* datadog-avi-vantage: 4.2.2 +* datadog-azure-iot-edge: 4.2.1 +* datadog-boundary: 2.2.3 +* datadog-btrfs: 2.3.0 +* datadog-cacti: 2.1.1 +* datadog-calico: 2.2.2 +* datadog-cassandra-nodetool: 1.13.0 +* datadog-cassandra: 1.18.0 +* datadog-ceph: 2.10.0 +* datadog-cert-manager: 4.1.2 +* datadog-checkpoint-quantum-firewall: 1.0.0 +* datadog-checks-base: 36.8.0 +* datadog-checks-dependency-provider: 1.4.0 +* datadog-checks-downloader: 4.7.0 +* datadog-cilium: 3.5.1 +* datadog-cisco-aci: 2.8.0 +* datadog-cisco-secure-firewall: 1.0.0 +* datadog-citrix-hypervisor: 3.2.1 +* datadog-clickhouse: 3.5.0 +* datadog-cloud-foundry-api: 3.3.1 +* datadog-cloudera: 2.1.0 +* datadog-cockroachdb: 3.3.2 +* datadog-confluent-platform: 1.10.2 +* datadog-consul: 2.6.1 +* datadog-coredns: 3.2.3 +* datadog-couch: 6.2.1 +* datadog-couchbase: 3.2.1 +* datadog-crio: 2.6.1 +* datadog-datadog-cluster-agent: 3.1.1 +* datadog-dcgm: 2.3.2 +* datadog-directory: 2.1.1 +* datadog-disk: 5.3.0 +* datadog-dns-check: 3.3.0 +* datadog-dotnetclr: 2.1.1 +* datadog-druid: 2.5.1 +* datadog-ecs-fargate: 4.3.1 +* datadog-eks-fargate: 4.2.1 +* datadog-elastic: 6.3.1 +* datadog-envoy: 3.5.1 +* datadog-esxi: 1.1.0 +* datadog-etcd: 6.2.1 +* datadog-exchange-server: 2.1.1 +* datadog-external-dns: 3.2.1 +* datadog-flink: 1.5.0 +* datadog-fluentd: 3.2.1 +* datadog-fluxcd: 1.2.2 +* datadog-foundationdb: 1.4.0 +* datadog-gearmand: 3.1.0 +* datadog-gitlab-runner: 4.2.1 +* datadog-gitlab: 7.3.2 +* datadog-glusterfs: 1.7.0 +* datadog-go-expvar: 2.5.1 +* datadog-gunicorn: 2.7.0 +* datadog-haproxy: 5.2.2 +* datadog-harbor: 3.2.2 +* datadog-hazelcast: 3.2.1 +* datadog-hdfs-datanode: 4.2.1 +* datadog-hdfs-namenode: 4.2.1 +* datadog-hive: 1.10.0 +* datadog-hivemq: 1.8.0 +* datadog-http-check: 9.6.0 +* datadog-hudi: 2.3.0 +* datadog-hyperv: 1.11.1 +* datadog-ibm-ace: 2.2.2 +* datadog-ibm-db2: 2.2.0 +* datadog-ibm-i: 2.2.0 +* datadog-ibm-mq: 6.3.0 +* datadog-ibm-was: 3.3.1 +* datadog-ignite: 2.4.0 +* datadog-iis: 3.1.1 +* datadog-impala: 2.2.2 +* datadog-istio: 6.1.2 +* datadog-jboss-wildfly: 2.2.0 +* datadog-journald: 1.2.0 +* datadog-kafka-consumer: 4.4.0 +* datadog-kafka: 2.16.0 +* datadog-karpenter: 1.4.1 +* datadog-kong: 3.2.2 +* datadog-kube-apiserver-metrics: 4.3.1 +* datadog-kube-controller-manager: 5.1.1 +* datadog-kube-dns: 4.4.1 +* datadog-kube-metrics-server: 3.3.1 +* datadog-kube-proxy: 6.3.1 +* datadog-kube-scheduler: 4.10.1 +* datadog-kubelet: 7.13.2 +* datadog-kubernetes-cluster-autoscaler: 1.0.1 +* datadog-kubernetes-state: 8.1.1 +* datadog-kyototycoon: 2.5.1 +* datadog-lighttpd: 3.5.1 +* datadog-linkerd: 4.2.2 +* datadog-linux-proc-extras: 2.5.0 +* datadog-mapr: 1.11.0 +* datadog-mapreduce: 4.2.1 +* datadog-marathon: 2.3.1 +* datadog-marklogic: 4.2.1 +* datadog-mcache: 4.1.0 +* datadog-mesos-master: 3.3.1 +* datadog-mesos-slave: 3.3.1 +* datadog-mongo: 6.5.0 +* datadog-mysql: 12.5.1 +* datadog-nagios: 1.13.0 +* datadog-network: 3.3.0 +* datadog-nfsstat: 1.13.0 +* datadog-nginx-ingress-controller: 2.6.1 +* datadog-nginx: 6.3.1 +* datadog-nvidia-triton: 1.2.2 +* datadog-openldap: 1.12.0 +* datadog-openmetrics: 4.2.2 +* datadog-openstack-controller: 6.6.1 +* datadog-openstack: 2.0.0 +* datadog-oracle: 5.2.0 +* datadog-palo-alto-panorama: 1.0.0 +* datadog-pan-firewall: 1.2.0 +* datadog-pdh-check: 2.1.0 +* datadog-pgbouncer: 6.2.0 +* datadog-php-fpm: 3.3.1 +* datadog-postfix: 1.14.0 +* datadog-postgres: 18.3.1 +* datadog-powerdns-recursor: 2.5.1 +* datadog-presto: 2.8.0 +* datadog-process: 3.3.0 +* datadog-prometheus: 3.6.0 +* datadog-proxysql: 5.1.1 +* datadog-pulsar: 2.2.2 +* datadog-rabbitmq: 5.3.2 +* datadog-ray: 1.2.2 +* datadog-redisdb: 5.5.0 +* datadog-rethinkdb: 3.1.0 +* datadog-riak: 3.5.1 +* datadog-riakcs: 2.11.0 +* datadog-sap-hana: 3.2.0 +* datadog-scylla: 2.7.2 +* datadog-sidekiq: 1.4.0 +* datadog-silk: 2.2.1 +* datadog-singlestore: 2.2.1 +* datadog-snmp: 7.3.1 +* datadog-snowflake: 5.6.0 +* datadog-solr: 1.13.0 +* datadog-sonarqube: 3.2.2 +* datadog-spark: 4.3.1 +* datadog-sqlserver: 17.3.0 +* datadog-squid: 2.5.1 +* datadog-ssh-check: 2.8.0 +* datadog-statsd: 1.12.0 +* datadog-strimzi: 2.2.2 +* datadog-supervisord: 2.6.0 +* datadog-system-core: 2.4.0 +* datadog-system-swap: 1.18.0 +* datadog-tcp-check: 4.8.0 +* datadog-teamcity: 4.2.2 +* datadog-tekton: 1.0.2 +* datadog-teleport: 1.0.0 +* datadog-temporal: 2.2.2 +* datadog-tenable: 1.5.0 +* datadog-teradata: 2.2.1 +* datadog-tls: 2.17.0 +* datadog-tokumx: 3.2.0 +* datadog-tomcat: 2.0.0 +* datadog-torchserve: 2.2.2 +* datadog-traefik-mesh: 1.0.1 +* datadog-traffic-server: 2.2.1 +* datadog-twemproxy: 1.15.0 +* datadog-twistlock: 3.6.1 +* datadog-varnish: 2.1.0 +* datadog-vault: 4.2.1 +* datadog-vertica: 4.5.0 +* datadog-voltdb: 3.2.1 +* datadog-vsphere: 7.5.3 +* datadog-weaviate: 2.3.3 +* datadog-weblogic: 1.3.0 +* datadog-win32-event-log: 3.3.0 +* datadog-windows-performance-counters: 2.1.1 +* datadog-windows-service: 4.9.0 +* datadog-wmi-check: 1.18.0 +* datadog-yarn: 5.3.1 +* datadog-zeek: 1.0.0 +* datadog-zk: 4.5.0 + ## Datadog Agent version 7.55.0 * datadog-active-directory: 2.1.1 From 02bd45f67642ca792c8459e263206c43458398ec Mon Sep 17 00:00:00 2001 From: Steven Yuen Date: Tue, 16 Jul 2024 09:05:23 -0400 Subject: [PATCH 61/68] vault ootb update (#18045) * vault ootb update * vault ootb update manifest * Update vault_overview.json --- vault/assets/dashboards/vault_overview.json | 2423 +++++++++++-------- vault/manifest.json | 2 +- 2 files changed, 1356 insertions(+), 1069 deletions(-) diff --git a/vault/assets/dashboards/vault_overview.json b/vault/assets/dashboards/vault_overview.json index 6ef6b98fa1432..790c193d5234b 100644 --- a/vault/assets/dashboards/vault_overview.json +++ b/vault/assets/dashboards/vault_overview.json @@ -18,43 +18,43 @@ { "available_values": [], "default": "*", - "name": "auth.client_token", + "name": "logs.auth.client_token", "prefix": "@auth.client_token" }, { "available_values": [], "default": "*", - "name": "request.client_token_accessor", + "name": "logs.request.client_token_accessor", "prefix": "@request.client_token_accessor" }, { "available_values": [], "default": "*", - "name": "request.remote_address", + "name": "logs.request.remote_address", "prefix": "@request.remote_address" }, { "available_values": [], "default": "*", - "name": "auth.display_name", + "name": "logs.auth.display_name", "prefix": "@auth.display_name" }, { "available_values": [], "default": "*", - "name": "request.mount_type", + "name": "logs.request.mount_type", "prefix": "@request.mount_type" }, { "available_values": [], "default": "*", - "name": "request.path", + "name": "logs.request.path", "prefix": "@request.path" }, { "available_values": [], "default": "*", - "name": "request.operation", + "name": "logs.request.operation", "prefix": "@request.operation" } ], @@ -73,19 +73,19 @@ "definition": { "background_color": "transparent", "content": "## Vault\n\nThis dashboard provides a high-level overview of your Vault clusters so you can monitor its performance and cluster health.\n\nAudit devices is a logging mechanism that keeps detailed logs of all requests and responses to Vault. Audit Devices are not enabled by default and should be enabled to be used in the Cloud SIEM.\n\n", - "font_size": "12", + "font_size": "16", "has_padding": true, "show_tick": false, "text_align": "left", "tick_edge": "left", "tick_pos": "50%", "type": "note", - "vertical_align": "top" + "vertical_align": "center" }, "id": 6856665905714958, "layout": { - "height": 2, - "width": 4, + "height": 4, + "width": 3, "x": 0, "y": 0 } @@ -94,19 +94,20 @@ "definition": { "background_color": "transparent", "content": "## Useful Links\n\n- [Monitoring Vault with Datadog \u2197](https://www.datadoghq.com/blog/vault-monitoring-with-datadog/#collect-and-analyze-all-your-vault-logs)\n- [Hashicorp Vault Auditing Documentation \u2197](https://www.vaultproject.io/docs/audit#enabling-disabling-audit-devices)\n- [Datadog Vault Integration Documentation \u2197](https://docs.datadoghq.com/integrations/vault)\n- [Datadog Vault Monitoring 3 Blog Part Series \u2197](https://www.datadoghq.com/blog/monitor-vault-metrics-and-logs)", - "font_size": "12", + "font_size": "16", "has_padding": true, "show_tick": false, - "text_align": "left", + "text_align": "center", "tick_edge": "left", "tick_pos": "50%", - "type": "note" + "type": "note", + "vertical_align": "center" }, "id": 3660302701095376, "layout": { - "height": 2, - "width": 4, - "x": 4, + "height": 4, + "width": 3, + "x": 3, "y": 0 } } @@ -114,8 +115,8 @@ }, "id": 0, "layout": { - "height": 5, - "width": 8, + "height": 7, + "width": 6, "x": 0, "y": 0 } @@ -132,13 +133,12 @@ { "definition": { "check": "vault.initialized", - "group_by": [ - "$vault_cluster", - "$api_url" - ], + "group_by": [], "grouping": "cluster", "tags": [ - "*" + "*", + "$vault_cluster", + "$api_url" ], "title": "Initialized", "title_align": "left", @@ -156,12 +156,11 @@ { "definition": { "check": "vault.can_connect", - "group_by": [ - "$api_url" - ], + "group_by": [], "grouping": "cluster", "tags": [ - "*" + "*", + "$api_url" ], "title": "Can connect", "title_align": "left", @@ -179,13 +178,12 @@ { "definition": { "check": "vault.unsealed", - "group_by": [ - "$vault_cluster", - "$api_url" - ], + "group_by": [], "grouping": "cluster", "tags": [ - "*" + "*", + "$vault_cluster", + "$api_url" ], "title": "Unsealed", "title_align": "left", @@ -196,28 +194,30 @@ "layout": { "height": 2, "width": 2, - "x": 0, - "y": 2 + "x": 4, + "y": 0 } }, { "definition": { - "background_color": "blue", - "content": "This metric is only available when the connection between the primary and its replica has been lost. Ideally, this value should never exceed zero\u2014the primary and the replica should be in constant communication to ensure the replica is not serving stale data.", - "font_size": "12", - "has_padding": true, - "show_tick": false, - "text_align": "left", - "tick_edge": "left", - "tick_pos": "50%", - "type": "note", - "vertical_align": "top" + "color_preference": "text", + "count": 50, + "display_format": "countsAndList", + "hide_zero_counts": true, + "query": "integration:vault", + "show_last_triggered": false, + "show_priority": false, + "sort": "status,asc", + "start": 0, + "summary_type": "monitors", + "title": "Vault Monitor Overview", + "type": "manage_status" }, - "id": 2234006812248346, + "id": 4300183138545700, "layout": { - "height": 2, - "width": 2, - "x": 2, + "height": 4, + "width": 6, + "x": 0, "y": 2 } } @@ -225,15 +225,15 @@ }, "id": 1, "layout": { - "height": 5, - "width": 4, - "x": 8, + "height": 7, + "width": 6, + "x": 6, "y": 0 } }, { "definition": { - "background_color": "vivid_green", + "background_color": "vivid_blue", "layout_type": "ordered", "show_title": true, "title": "Performance", @@ -264,14 +264,14 @@ { "data_source": "metrics", "name": "query5", - "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}.as_count()" + "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" } ], "response_format": "timeseries", "style": { "line_type": "solid", "line_width": "normal", - "palette": "cool" + "palette": "blue" } }, { @@ -287,14 +287,14 @@ { "data_source": "metrics", "name": "query0", - "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}.as_count()" + "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" } ], "response_format": "timeseries", "style": { "line_type": "dotted", "line_width": "normal", - "palette": "grey" + "palette": "green" } } ], @@ -313,8 +313,8 @@ }, "id": 1049094212182326, "layout": { - "height": 2, - "width": 4, + "height": 3, + "width": 6, "x": 0, "y": 0 } @@ -332,37 +332,54 @@ "markers": [], "requests": [ { - "display_type": "area", + "display_type": "bars", "formulas": [ { - "alias": "Login request latency (ms)", - "formula": "ewma_3(query3 / query7)" + "alias": "Core Vault handle requests", + "formula": "query4" } ], "on_right_yaxis": false, "queries": [ { "data_source": "metrics", - "name": "query3", - "query": "sum:vault.vault.core.handle.login_request.sum{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" - }, + "name": "query4", + "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "blue" + } + }, + { + "display_type": "line", + "formulas": [ + { + "alias": "Week Before", + "formula": "week_before(query0)" + } + ], + "on_right_yaxis": false, + "queries": [ { "data_source": "metrics", - "name": "query7", - "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}.as_count()" + "name": "query0", + "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" } ], "response_format": "timeseries", "style": { - "line_type": "solid", + "line_type": "dotted", "line_width": "normal", - "palette": "warm" + "palette": "green" } } ], "show_legend": true, - "time": {}, - "title": "Login request latency", + "title": "Core handle requests", "title_align": "left", "title_size": "16", "type": "timeseries", @@ -374,12 +391,12 @@ "scale": "linear" } }, - "id": 7910607609141736, + "id": 5360312192322620, "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 2 + "height": 3, + "width": 6, + "x": 6, + "y": 0 } }, { @@ -395,37 +412,41 @@ "markers": [], "requests": [ { - "display_type": "area", + "display_type": "line", "formulas": [ { - "alias": "Request latency", - "formula": "query3 / query7" + "alias": "Login request latency (ms)", + "formula": "ewma_3(query3 / query7)", + "number_format": { + "unit": { + "label": "ms/request", + "type": "custom_unit_label" + } + } } ], - "on_right_yaxis": false, "queries": [ { "data_source": "metrics", "name": "query3", - "query": "sum:vault.vault.core.handle.request.sum{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" + "query": "sum:vault.vault.core.handle.login_request.sum{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" }, { "data_source": "metrics", "name": "query7", - "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}.as_count()" + "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" } ], "response_format": "timeseries", "style": { "line_type": "solid", "line_width": "normal", - "palette": "warm" + "palette": "cool" } } ], "show_legend": true, - "time": {}, - "title": "Request latency", + "title": "Login request latency", "title_align": "left", "title_size": "16", "type": "timeseries", @@ -437,12 +458,12 @@ "scale": "linear" } }, - "id": 8930787296591998, + "id": 7910607609141736, "layout": { - "height": 2, - "width": 4, + "height": 3, + "width": 6, "x": 0, - "y": 4 + "y": 3 } }, { @@ -458,54 +479,42 @@ "markers": [], "requests": [ { - "display_type": "bars", + "display_type": "line", "formulas": [ { - "alias": "Core Vault handle requests", - "formula": "query4" + "alias": "Request latency", + "formula": "query3 / query7", + "number_format": { + "unit": { + "label": "ms/request", + "type": "custom_unit_label" + } + } } ], - "on_right_yaxis": false, "queries": [ { "data_source": "metrics", - "name": "query4", - "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "line_type": "solid", - "line_width": "normal", - "palette": "cool" - } - }, - { - "display_type": "line", - "formulas": [ - { - "alias": "Week Before", - "formula": "week_before(query0)" - } - ], - "on_right_yaxis": false, - "queries": [ + "name": "query3", + "query": "sum:vault.vault.core.handle.request.sum{$vault_cluster,$api_url} by {api_url,vault_cluster}.as_count()" + }, { "data_source": "metrics", - "name": "query0", - "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}.as_count()" + "name": "query7", + "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url} by {api_url,vault_cluster}.as_count()" } ], "response_format": "timeseries", "style": { - "line_type": "dotted", + "line_type": "solid", "line_width": "normal", - "palette": "grey" + "order_reverse": false, + "palette": "cool" } } ], "show_legend": true, - "title": "Core handle requests", + "title": "Request latency", "title_align": "left", "title_size": "16", "type": "timeseries", @@ -517,82 +526,83 @@ "scale": "linear" } }, - "id": 5360312192322620, + "id": 8930787296591998, "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 6 + "height": 3, + "width": 6, + "x": 6, + "y": 3 } } ] }, "id": 2, "layout": { - "height": 9, - "width": 4, + "height": 7, + "width": 12, "x": 0, - "y": 0 + "y": 7 } }, { "definition": { - "background_color": "vivid_purple", + "background_color": "vivid_blue", "layout_type": "ordered", "show_title": true, - "title": "Logging Overview", + "title": "Runtime", "type": "group", "widgets": [ { "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [], "requests": [ { + "display_type": "line", "formulas": [ { - "cell_display_mode": "bar", - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } + "alias": "Total garbage collector pause time (ns)", + "formula": "query6" } ], "queries": [ { - "compute": { - "aggregation": "count" - }, - "data_source": "logs", - "group_by": [ - { - "facet": "host", - "limit": 100, - "sort": { - "aggregation": "count", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } + "data_source": "metrics", + "name": "query6", + "query": "avg:vault.vault.runtime.gc.pause_ns.sum{$vault_cluster,$api_url,$logs.auth.client_token,$logs.request.client_token_accessor,$logs.request.remote_address,$logs.auth.display_name,$logs.request.mount_type,$logs.request.path,$logs.request.operation}" } ], - "response_format": "scalar" + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } } ], - "title": "Log activity by host", + "show_legend": true, + "title": "Garbage collector pause time", "title_align": "left", "title_size": "16", - "type": "query_table" + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } }, - "id": 2134188196810948, + "id": 7616603997410384, "layout": { - "height": 2, + "height": 3, "width": 4, "x": 0, "y": 0 @@ -602,56 +612,62 @@ "definition": { "legend_columns": [ "avg", + "min", "max", - "value" + "value", + "sum" ], - "legend_layout": "horizontal", + "legend_layout": "auto", "markers": [], "requests": [ { - "display_type": "bars", + "display_type": "line", "formulas": [ { - "alias": "Vault logs", + "alias": "Bytes allocated by Vault process", "formula": "query2" } ], - "on_right_yaxis": false, "queries": [ { - "compute": { - "aggregation": "count" - }, - "data_source": "logs", - "group_by": [ - { - "facet": "env", - "limit": 10, - "sort": { - "aggregation": "count", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], + "data_source": "metrics", "name": "query2", - "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } + "query": "max:vault.vault.runtime.alloc.bytes{$vault_cluster,$api_url,$logs.auth.client_token,$logs.request.client_token_accessor,$logs.request.remote_address,$logs.auth.display_name,$logs.request.mount_type,$logs.request.path,$logs.request.operation}" } ], "response_format": "timeseries", "style": { "line_type": "solid", "line_width": "normal", - "palette": "purple" + "palette": "dog_classic" } - } + }, + { + "display_type": "line", + "formulas": [ + { + "alias": "Bytes allocated to Vault", + "formula": "query2" + } + ], + "on_right_yaxis": false, + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "max:vault.vault.runtime.sys.bytes{$vault_cluster,$api_url,$logs.auth.client_token,$logs.request.client_token_accessor,$logs.request.remote_address,$logs.auth.display_name,$logs.request.mount_type,$logs.request.path,$logs.request.operation}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "orange" + } + } ], "show_legend": true, - "title": "Log volume by environment", + "title": "Memory allocation", "title_align": "left", "title_size": "16", "type": "timeseries", @@ -663,109 +679,39 @@ "scale": "linear" } }, - "id": 1258160608807844, + "id": 7705172436099530, "layout": { - "height": 2, + "height": 3, "width": 4, - "x": 4, - "y": 0 - } - }, - { - "definition": { - "columns": [ - "host", - "service" - ], - "indexes": [], - "message_display": "expanded-md", - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster", - "show_date_column": true, - "show_message_column": true, - "sort": { - "column": "time", - "order": "desc" - }, - "title": "All logs", - "title_align": "left", - "title_size": "16", - "type": "log_stream" - }, - "id": 2115911637253564, - "layout": { - "height": 6, - "width": 8, "x": 0, - "y": 2 + "y": 3 } } ] }, - "id": 3, + "id": 6, "layout": { - "height": 9, - "width": 8, - "x": 4, + "height": 7, + "width": 4, + "x": 0, "y": 0 } }, { "definition": { - "background_color": "vivid_green", + "background_color": "vivid_blue", "layout_type": "ordered", "show_title": true, - "title": "Activity", + "title": "Token", "type": "group", "widgets": [ - { - "definition": { - "requests": [ - { - "log_query": { - "compute": { - "aggregation": "count" - }, - "group_by": [ - { - "facet": "@request.remote_address", - "limit": 25, - "sort": { - "aggregation": "count", - "order": "desc" - } - } - ], - "index": "*", - "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } - } - } - ], - "title": "Top Vault Requests by IP", - "title_align": "left", - "title_size": "16", - "type": "toplist" - }, - "id": 4254548397052216, - "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 0 - } - }, { "definition": { "requests": [ { "formulas": [ { - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } + "formula": "query1" } ], "queries": [ @@ -776,11 +722,11 @@ "data_source": "logs", "group_by": [ { - "facet": "@request.remote_address", + "facet": "@auth.display_name", "limit": 100, "sort": { "aggregation": "count", - "order": "asc" + "order": "desc" } } ], @@ -789,51 +735,107 @@ ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "source:vault @auth.token_ttl:>46080 $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], "response_format": "scalar" } ], - "title": "Requests by Rare IPs", + "title": "Tokens Greater Than 30 Days", "title_align": "left", "title_size": "16", "type": "toplist" }, - "id": 1776539419867568, + "id": 5455418732509084, "layout": { - "height": 2, - "width": 4, + "height": 3, + "width": 3, "x": 0, - "y": 2 + "y": 0 } }, { "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [], "requests": [ { + "display_type": "bars", "formulas": [ { - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } + "alias": "Vault tokens created", + "formula": "query2" + } + ], + "on_right_yaxis": false, + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "sum:vault.vault.token.create.count{$vault_cluster,$api_url,$logs.auth.client_token,$logs.request.client_token_accessor,$logs.request.remote_address,$logs.auth.display_name,$logs.request.mount_type,$logs.request.path,$logs.request.operation}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Number of tokens created", + "title_align": "left", + "title_size": "16", + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } + }, + "id": 2734285897055334, + "layout": { + "height": 3, + "width": 5, + "x": 3, + "y": 0 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" } ], "queries": [ { "compute": { - "aggregation": "count" + "aggregation": "count", + "metric": "count" }, "data_source": "logs", "group_by": [ { - "facet": "@request.client_token_accessor", + "facet": "@auth.token_type", "limit": 10, + "should_exclude_missing": true, "sort": { "aggregation": "count", + "metric": "count", "order": "desc" } } @@ -843,79 +845,138 @@ ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } + "query": "source:vault @request.operation:create $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster " + }, + "storage": "hot" } ], - "response_format": "scalar" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } } ], - "title": "Top Client Token Accessors", + "style": {}, + "title": "Token Types Created", "title_align": "left", "title_size": "16", "type": "toplist" }, - "id": 4418354492646266, + "id": 5882554771659276, "layout": { - "height": 2, - "width": 4, + "height": 3, + "width": 3, "x": 0, - "y": 4 + "y": 3 } }, { "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [], "requests": [ { + "display_type": "bars", "formulas": [ { - "formula": "query1", - "limit": { - "count": 50, - "order": "desc" - } + "alias": "Token Type", + "formula": "query1" } ], + "on_right_yaxis": false, "queries": [ { "compute": { "aggregation": "count" }, "data_source": "logs", - "group_by": [], + "group_by": [ + { + "facet": "@auth.token_type", + "limit": 10, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], "indexes": [ "*" ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "source:vault @request.operation:create $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], - "response_format": "scalar" + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } } ], - "title": "Requests by mount type", + "show_legend": false, + "title": "Token Types Created", "title_align": "left", "title_size": "16", - "type": "toplist" + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } }, - "id": 3560343377470418, + "id": 8757546369667726, "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 6 + "height": 3, + "width": 5, + "x": 3, + "y": 3 } - }, + } + ] + }, + "id": 8, + "layout": { + "height": 7, + "width": 8, + "x": 4, + "y": 0 + } + }, + { + "definition": { + "background_color": "vivid_purple", + "layout_type": "ordered", + "show_title": true, + "title": "Logging Overview", + "type": "group", + "widgets": [ { "definition": { - "autoscale": true, - "precision": 2, "requests": [ { "formulas": [ { + "cell_display_mode": "bar", "formula": "query1" } ], @@ -925,257 +986,577 @@ "aggregation": "count" }, "data_source": "logs", - "group_by": [], + "group_by": [ + { + "facet": "host", + "limit": 100, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], "indexes": [ "*" ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], - "response_format": "scalar" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } } ], - "title": "Vault Log Volume", + "title": "Log activity by host", "title_align": "left", "title_size": "16", - "type": "query_value" + "type": "query_table" }, - "id": 291938895140890, + "id": 2134188196810948, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 0 + } + }, + { + "definition": { + "legend_columns": [ + "avg", + "max", + "value" + ], + "legend_layout": "horizontal", + "markers": [], + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Vault logs", + "formula": "query2" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count", + "metric": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "env", + "limit": 10, + "should_exclude_missing": true, + "sort": { + "aggregation": "count", + "metric": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query2", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster " + }, + "storage": "hot" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "purple" + } + } + ], + "show_legend": true, + "title": "Log volume by environment", + "title_align": "left", + "title_size": "16", + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } + }, + "id": 1258160608807844, + "layout": { + "height": 4, + "width": 6, + "x": 6, + "y": 0 + } + }, + { + "definition": { + "background_color": "purple", + "content": "You can gain an even deeper understanding of Vault\u2019s activity by collecting and analyzing logs from your Vault clusters. Vault produces two types of logs: server logs and audit logs. Server logs record all activities that occur on each server, and they are the first place to look when troubleshooting an error. Log entries include a timestamp, log level, log source (e.g., core, storage), and log message. They are also grouped by pattern for ease of overview.", + "font_size": "14", + "has_padding": true, + "show_tick": false, + "text_align": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 5, "layout": { "height": 1, - "width": 4, + "width": 12, "x": 0, - "y": 8 + "y": 4 } }, { "definition": { "requests": [ { - "log_query": { - "compute": { - "aggregation": "count" + "columns": [ + { + "field": "status_line", + "width": "auto" + }, + { + "field": "matches", + "width": "auto" }, + { + "field": "volume", + "width": "auto" + }, + { + "field": "service", + "width": "auto" + }, + { + "field": "message", + "width": "auto" + } + ], + "query": { + "data_source": "logs_pattern_stream", "group_by": [ { - "facet": "@request.operation", - "limit": 10, - "sort": { - "aggregation": "count", - "order": "desc" - } + "facet": "service" } ], - "index": "*", - "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } - } + "indexes": [], + "query_string": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster " + }, + "response_format": "event_list" } ], - "title": "Vault Operations", + "title": "All logs", "title_align": "left", "title_size": "16", - "type": "toplist" + "type": "list_stream" }, - "id": 567235502020146, + "id": 2115911637253564, "layout": { - "height": 2, - "width": 4, + "height": 5, + "width": 12, "x": 0, - "y": 9 + "y": 5 } } ] }, - "id": 4, + "id": 3, "layout": { - "height": 12, - "width": 4, + "height": 11, + "width": 12, "x": 0, - "y": 0 - } - }, - { - "definition": { - "background_color": "purple", - "content": "You can gain an even deeper understanding of Vault\u2019s activity by collecting and analyzing logs from your Vault clusters. Vault produces two types of logs: server logs and audit logs. Server logs record all activities that occurred on each server, and they would be the first place you\u2019d look to troubleshoot an error. Log entries include a timestamp, the log level, the log source (e.g., core, storage), and the log message, as shown below:", - "font_size": "14", - "has_padding": true, - "show_tick": true, - "text_align": "left", - "tick_edge": "top", - "tick_pos": "50%", - "type": "note", - "vertical_align": "top" - }, - "id": 5, - "layout": { - "height": 3, - "width": 4, - "x": 4, - "y": 0 + "y": 21 } }, { "definition": { - "background_color": "vivid_green", + "background_color": "vivid_blue", "layout_type": "ordered", "show_title": true, - "title": "Runtime", + "title": "Activity", "type": "group", "widgets": [ { "definition": { - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "@request.remote_address", + "limit": 25, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + } + } + ], + "response_format": "scalar", + "sort": { + "count": 25, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } ], - "legend_layout": "auto", - "markers": [], + "title": "Top Vault Requests by IP", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 4254548397052216, + "layout": { + "height": 4, + "width": 2, + "x": 0, + "y": 0 + } + }, + { + "definition": { "requests": [ { - "display_type": "line", "formulas": [ { - "alias": "Total garbage collector pause time (ns)", - "formula": "query6" + "formula": "query1" } ], "queries": [ { - "data_source": "metrics", - "name": "query6", - "query": "avg:vault.vault.runtime.gc.pause_ns.sum{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "@request.remote_address", + "limit": 100, + "sort": { + "aggregation": "count", + "order": "asc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + } + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "title": "Requests by Rare IPs", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 1776539419867568, + "layout": { + "height": 4, + "width": 2, + "x": 2, + "y": 0 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count", + "metric": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "@request.mount_type", + "limit": 10, + "sort": { + "aggregation": "count", + "metric": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } + } + ], + "style": {}, + "title": "Requests by mount type", + "title_align": "left", + "title_size": "16", + "type": "toplist" + }, + "id": 3560343377470418, + "layout": { + "height": 4, + "width": 2, + "x": 4, + "y": 0 + } + }, + { + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "@request.client_token_accessor", + "limit": 10, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + } } ], - "response_format": "timeseries", - "style": { - "line_type": "solid", - "line_width": "normal", - "palette": "dog_classic" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] } } ], - "show_legend": true, - "title": "Garbage collector pause time", + "title": "Top Client Token Accessors", "title_align": "left", "title_size": "16", - "type": "timeseries", - "yaxis": { - "include_zero": true, - "label": "", - "max": "auto", - "min": "auto", - "scale": "linear" - } + "type": "toplist" }, - "id": 7616603997410384, + "id": 4418354492646266, "layout": { - "height": 2, - "width": 4, - "x": 0, + "height": 4, + "width": 3, + "x": 6, "y": 0 } }, { "definition": { - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "legend_layout": "auto", - "markers": [], + "autoscale": true, + "precision": 2, "requests": [ { - "display_type": "line", "formulas": [ { - "alias": "Bytes allocated by Vault process", - "formula": "query2" + "formula": "query1" } ], "queries": [ { - "data_source": "metrics", - "name": "query2", - "query": "max:vault.vault.runtime.alloc.bytes{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + } } ], - "response_format": "timeseries", - "style": { - "line_type": "solid", - "line_width": "normal", - "palette": "dog_classic" - } - }, + "response_format": "scalar" + } + ], + "title": "Vault Log Volume", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 291938895140890, + "layout": { + "height": 1, + "width": 3, + "x": 9, + "y": 0 + } + }, + { + "definition": { + "requests": [ { - "display_type": "line", "formulas": [ { - "alias": "Bytes allocated to Vault", - "formula": "query2" + "formula": "query1" } ], - "on_right_yaxis": false, "queries": [ { - "data_source": "metrics", - "name": "query2", - "query": "max:vault.vault.runtime.sys.bytes{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "@request.operation", + "limit": 10, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + } } ], - "response_format": "timeseries", - "style": { - "line_type": "solid", - "line_width": "normal", - "palette": "orange" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] } } ], - "show_legend": true, - "title": "Memory allocation", + "title": "Vault Operations", "title_align": "left", "title_size": "16", - "type": "timeseries", - "yaxis": { - "include_zero": true, - "label": "", - "max": "auto", - "min": "auto", - "scale": "linear" - } + "type": "toplist" }, - "id": 7705172436099530, + "id": 567235502020146, "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 2 + "height": 3, + "width": 3, + "x": 9, + "y": 1 } } ] }, - "id": 6, + "id": 4, "layout": { "height": 5, - "width": 4, - "x": 8, - "y": 0 + "width": 12, + "x": 0, + "y": 32 } }, { "definition": { - "background_color": "vivid_green", + "background_color": "vivid_blue", "layout_type": "ordered", "show_title": true, "title": "Storage Backend", @@ -1206,7 +1587,7 @@ { "data_source": "metrics", "name": "query3", - "query": "avg:vault.vault.consul.get.sum{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" + "query": "avg:vault.vault.consul.get.sum{$vault_cluster,$api_url,$logs.auth.client_token,$logs.request.client_token_accessor,$logs.request.remote_address,$logs.auth.display_name,$logs.request.mount_type,$logs.request.path,$logs.request.operation}" } ], "response_format": "timeseries", @@ -1218,7 +1599,6 @@ } ], "show_legend": true, - "time": {}, "title": "Consul GET duration", "title_align": "left", "title_size": "16", @@ -1233,8 +1613,8 @@ }, "id": 6447626950267332, "layout": { - "height": 2, - "width": 4, + "height": 3, + "width": 3, "x": 0, "y": 0 } @@ -1264,7 +1644,7 @@ { "data_source": "metrics", "name": "query3", - "query": "avg:vault.vault.consul.list.sum{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" + "query": "avg:vault.vault.consul.list.sum{$vault_cluster,$api_url,$logs.auth.client_token,$logs.request.client_token_accessor,$logs.request.remote_address,$logs.auth.display_name,$logs.request.mount_type,$logs.request.path,$logs.request.operation}" } ], "response_format": "timeseries", @@ -1276,7 +1656,6 @@ } ], "show_legend": true, - "time": {}, "title": "Consul LIST duration", "title_align": "left", "title_size": "16", @@ -1291,10 +1670,10 @@ }, "id": 8432096213458172, "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 2 + "height": 3, + "width": 3, + "x": 3, + "y": 0 } }, { @@ -1313,7 +1692,7 @@ "display_type": "line", "formulas": [ { - "alias": "Consul DELETE duration", + "alias": "Consul PUT duration (ms)", "formula": "query3" } ], @@ -1322,7 +1701,7 @@ { "data_source": "metrics", "name": "query3", - "query": "avg:vault.vault.consul.delete.sum{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" + "query": "avg:vault.vault.consul.put.sum{$vault_cluster,$api_url,$logs.auth.client_token,$logs.request.client_token_accessor,$logs.request.remote_address,$logs.auth.display_name,$logs.request.mount_type,$logs.request.path,$logs.request.operation}" } ], "response_format": "timeseries", @@ -1334,8 +1713,7 @@ } ], "show_legend": true, - "time": {}, - "title": "Consul DELETE duration", + "title": "Consul PUT duration", "title_align": "left", "title_size": "16", "type": "timeseries", @@ -1347,12 +1725,12 @@ "scale": "linear" } }, - "id": 6685472247312078, + "id": 7525508033147558, "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 4 + "height": 3, + "width": 3, + "x": 6, + "y": 0 } }, { @@ -1371,7 +1749,7 @@ "display_type": "line", "formulas": [ { - "alias": "Consul PUT duration (ms)", + "alias": "Consul DELETE duration", "formula": "query3" } ], @@ -1380,7 +1758,7 @@ { "data_source": "metrics", "name": "query3", - "query": "avg:vault.vault.consul.put.sum{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}" + "query": "avg:vault.vault.consul.delete.sum{$vault_cluster,$api_url,$logs.auth.client_token,$logs.request.client_token_accessor,$logs.request.remote_address,$logs.auth.display_name,$logs.request.mount_type,$logs.request.path,$logs.request.operation}" } ], "response_format": "timeseries", @@ -1392,8 +1770,7 @@ } ], "show_legend": true, - "time": {}, - "title": "Consul PUT duration", + "title": "Consul DELETE duration", "title_align": "left", "title_size": "16", "type": "timeseries", @@ -1405,85 +1782,49 @@ "scale": "linear" } }, - "id": 7525508033147558, + "id": 6685472247312078, "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 6 + "height": 3, + "width": 3, + "x": 9, + "y": 0 } } ] }, "id": 7, "layout": { - "height": 9, - "width": 4, - "x": 4, - "y": 3 + "height": 4, + "width": 12, + "x": 0, + "y": 37 } }, { "definition": { - "background_color": "vivid_green", + "background_color": "vivid_blue", "layout_type": "ordered", "show_title": true, - "title": "Token", + "title": "Client Token Activity", "type": "group", "widgets": [ { "definition": { - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "legend_layout": "auto", - "markers": [], - "requests": [ - { - "display_type": "bars", - "formulas": [ - { - "alias": "Vault tokens created", - "formula": "query2" - } - ], - "on_right_yaxis": false, - "queries": [ - { - "data_source": "metrics", - "name": "query2", - "query": "sum:vault.vault.token.create.count{$vault_cluster,$api_url,$auth.client_token,$request.client_token_accessor,$request.remote_address,$auth.display_name,$request.mount_type,$request.path,$request.operation}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "line_type": "solid", - "line_width": "normal", - "palette": "dog_classic" - } - } - ], - "show_legend": true, - "title": "Number of tokens created", - "title_align": "left", - "title_size": "16", - "type": "timeseries", - "yaxis": { - "include_zero": true, - "label": "", - "max": "auto", - "min": "auto", - "scale": "linear" - } + "background_color": "blue", + "content": "Use this section to quickly investigate a vault token by looking up a Token Accessor. A Token Accessor is created and returned with every token that is created. The token accessor value can be used to look up a token's properties, revoke a token, renew a taken, and look up a token's capabilities on a path.\n\nYou can click on a client token in the Top Client Token Accessors widget and click on `Set $request.client_token_accessor`. This will update the widgets in the Client Token Investigator for all information related to the Client Token Accessor that was set in the template variables. \n\nA Client Token Accessor looks like this: `hmac-sha256:97ea0893c72ddf1b9fe3f2f477526ff06e89cceff7a74ea7016d2e3e9b25a804`", + "font_size": "12", + "has_padding": true, + "show_tick": false, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "top" }, - "id": 2734285897055334, + "id": 4622110032256590, "layout": { "height": 2, - "width": 4, + "width": 9, "x": 0, "y": 0 } @@ -1494,11 +1835,7 @@ { "formulas": [ { - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } + "formula": "query1" } ], "queries": [ @@ -1509,7 +1846,7 @@ "data_source": "logs", "group_by": [ { - "facet": "@auth.token_type", + "facet": "@request.client_token_accessor", "limit": 10, "sort": { "aggregation": "count", @@ -1522,24 +1859,34 @@ ], "name": "query1", "search": { - "query": "source:vault @request.operation:create $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], - "response_format": "scalar" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } } ], - "title": "Token Types Created", + "title": "Client token by accessor", "title_align": "left", "title_size": "16", "type": "toplist" }, - "id": 5882554771659276, + "id": 8258230789541618, "layout": { - "height": 2, - "width": 2, - "x": 0, - "y": 2 + "height": 5, + "width": 3, + "x": 9, + "y": 0 } }, { @@ -1559,11 +1906,11 @@ "data_source": "logs", "group_by": [ { - "facet": "@auth.display_name", + "facet": "@request.remote_address", "limit": 100, "sort": { "aggregation": "count", - "order": "desc" + "order": "asc" } } ], @@ -1572,23 +1919,33 @@ ], "name": "query1", "search": { - "query": "source:vault @auth.token_ttl:>46080 $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], - "response_format": "scalar" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } } ], - "title": "Tokens Greater Than 30 Days", + "title": "Client token by IPs", "title_align": "left", "title_size": "16", "type": "toplist" }, - "id": 5455418732509084, + "id": 7321836322263742, "layout": { - "height": 2, - "width": 2, - "x": 2, + "height": 3, + "width": 4, + "x": 0, "y": 2 } }, @@ -1608,23 +1965,24 @@ "display_type": "bars", "formulas": [ { - "alias": "Token Type", + "alias": "Requests by client token accessor", "formula": "query1" } ], - "on_right_yaxis": false, "queries": [ { "compute": { - "aggregation": "count" + "aggregation": "count", + "metric": "count" }, "data_source": "logs", "group_by": [ { - "facet": "@auth.token_type", + "facet": "@request.client_token_accessor", "limit": 10, "sort": { "aggregation": "count", + "metric": "count", "order": "desc" } } @@ -1634,20 +1992,21 @@ ], "name": "query1", "search": { - "query": "source:vault @request.operation:create $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster " + }, + "storage": "hot" } ], "response_format": "timeseries", "style": { "line_type": "solid", "line_width": "normal", - "palette": "dog_classic" + "palette": "cool" } } ], - "show_legend": false, - "title": "Token Types Created", + "show_legend": true, + "title": "Historical activity by accessor", "title_align": "left", "title_size": "16", "type": "timeseries", @@ -1659,497 +2018,388 @@ "scale": "linear" } }, - "id": 8757546369667726, - "layout": { - "height": 2, - "width": 4, - "x": 0, - "y": 4 - } - } - ] - }, - "id": 8, - "layout": { - "height": 7, - "width": 4, - "x": 8, - "y": 5 - } - }, - { - "definition": { - "background_color": "vivid_purple", - "layout_type": "ordered", - "show_title": true, - "title": "Datadog Security Monitoring", - "type": "group", - "widgets": [ - { - "definition": { - "background_color": "gray", - "content": "Datadog Security Monitoring analyzes HashiCorp Vault audit logs to detect threats to your environment in real time. If you aren't currently using [Datadog Security Monitoring](https://app.datadoghq.com/security), please sign up. ", - "font_size": "14", - "has_padding": true, - "show_tick": false, - "text_align": "left", - "tick_edge": "left", - "tick_pos": "50%", - "type": "note", - "vertical_align": "center" - }, - "id": 5944879021383970, + "id": 5092863776380150, "layout": { - "height": 1, - "width": 12, - "x": 0, - "y": 0 + "height": 3, + "width": 5, + "x": 4, + "y": 2 } }, { "definition": { - "autoscale": true, - "custom_links": [ - { - "label": "View related Security Signals", - "link": "/security?query=source:vault status:critical" - } - ], - "precision": 2, "requests": [ { - "conditional_formats": [ - { - "comparator": ">", - "custom_bg_color": "#bc303c", - "palette": "custom_bg", - "value": 0 - } - ], "formulas": [ { + "cell_display_mode": "bar", "formula": "query1" } ], "queries": [ { "compute": { - "aggregation": "count" + "aggregation": "count", + "metric": "count" }, - "data_source": "security_signals", - "group_by": [], + "data_source": "logs", + "group_by": [ + { + "facet": "@request.operation", + "limit": 10, + "should_exclude_missing": true, + "sort": { + "aggregation": "count", + "metric": "count", + "order": "desc" + } + } + ], "indexes": [ "*" ], "name": "query1", "search": { - "query": "status:critical source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster " + }, + "storage": "hot" } ], - "response_format": "scalar" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } } ], - "title": "CRITICALs", + "title": "Operations by client token", "title_align": "left", "title_size": "16", - "type": "query_value" + "type": "query_table" }, - "id": 6255926866858486, + "id": 5099313152151602, "layout": { - "height": 2, - "width": 2, + "height": 4, + "width": 3, "x": 0, - "y": 1 + "y": 5 } }, { "definition": { - "autoscale": true, - "custom_links": [ - { - "label": "View related Security Signals", - "link": "/security?query=source:vault status:high" - } - ], - "precision": 2, "requests": [ { - "aggregator": "avg", - "conditional_formats": [ + "formulas": [ { - "comparator": ">", - "custom_bg_color": "#d33043", - "palette": "custom_bg", - "value": 0 + "formula": "query1" } ], - "security_query": { - "compute": { - "aggregation": "count" - }, - "group_by": [], - "index": "*", - "search": { - "query": "status:high source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } - } - } - ], - "title": "HIGHs", - "title_align": "left", - "title_size": "16", - "type": "query_value" - }, - "id": 2600798289917504, - "layout": { - "height": 2, - "width": 2, - "x": 2, - "y": 1 - } - }, - { - "definition": { - "custom_links": [ - { - "label": "View related Security Signals", - "link": "/security?query=@workflow.rule.name:{{@workflow.rule.name.value}}" - } - ], - "requests": [ - { - "conditional_formats": [ + "queries": [ { - "comparator": ">", - "palette": "white_on_red", - "value": 0 - } - ], - "security_query": { - "compute": { - "aggregation": "count" - }, - "group_by": [ - { - "facet": "@workflow.rule.name", - "limit": 10, - "sort": { - "aggregation": "count", - "order": "desc" + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "@auth.display_name", + "limit": 10, + "sort": { + "aggregation": "count", + "order": "desc" + } } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } - ], - "index": "*", - "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } - } - } - ], - "title": "Security Signals", - "type": "toplist" - }, - "id": 721282318874290, - "layout": { - "height": 4, - "width": 4, - "x": 4, - "y": 1 - } - }, - { - "definition": { - "custom_links": [ - { - "label": "View related Security Signals", - "link": "/security?query=@workflow.rule.name:{{@workflow.rule.name.value}}" - } - ], - "requests": [ - { - "conditional_formats": [ - { - "comparator": ">", - "palette": "white_on_red", - "value": 0 } ], - "security_query": { - "compute": { - "aggregation": "count" - }, - "group_by": [ + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ { - "facet": "@evt.name", - "limit": 10, - "sort": { - "aggregation": "count", - "order": "desc" - } + "index": 0, + "order": "desc", + "type": "formula" } - ], - "index": "*", - "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } + ] } } ], - "title": "Security Signals by Events", + "title": "Top users by client token accessor ", + "title_align": "left", + "title_size": "16", "type": "toplist" }, - "id": 7444326215896084, + "id": 1645099613316488, "layout": { "height": 4, - "width": 4, - "x": 8, - "y": 1 + "width": 3, + "x": 3, + "y": 5 } }, { "definition": { - "autoscale": true, - "custom_links": [ - { - "label": "View related Security Signals", - "link": "/security?source:vault status:medium" - } - ], - "precision": 2, "requests": [ { - "aggregator": "avg", - "conditional_formats": [ + "formulas": [ { - "comparator": ">", - "custom_bg_color": "#e5a21c", - "palette": "custom_bg", - "value": 0 + "formula": "query1" } ], - "security_query": { - "compute": { - "aggregation": "count" - }, - "group_by": [], - "index": "*", - "search": { - "query": "status:medium source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "queries": [ + { + "compute": { + "aggregation": "count", + "metric": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "@request.mount_type", + "limit": 50, + "should_exclude_missing": true, + "sort": { + "aggregation": "count", + "metric": "count", + "order": "desc" + } + }, + { + "facet": "@request.client_token_accessor", + "limit": 10, + "should_exclude_missing": true, + "sort": { + "aggregation": "count", + "metric": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + }, + "storage": "hot" } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] } } ], - "title": "MEDIUMs", + "style": {}, + "title": "Mount types by client token", "title_align": "left", "title_size": "16", - "type": "query_value" + "type": "toplist" }, - "id": 5260559479014138, + "id": 4800477545973282, "layout": { - "height": 2, - "width": 2, - "x": 0, - "y": 3 + "height": 4, + "width": 3, + "x": 6, + "y": 5 } }, { "definition": { - "autoscale": true, - "custom_links": [ - { - "label": "View related Security Signals", - "link": "/security?query=source:vault status:low" - } - ], - "precision": 2, "requests": [ { - "aggregator": "avg", - "conditional_formats": [ + "formulas": [ { - "comparator": ">", - "custom_bg_color": "#ffb52b", - "palette": "custom_bg", - "value": 0 + "formula": "query1" } ], - "security_query": { - "compute": { - "aggregation": "count" - }, - "group_by": [], - "index": "*", - "search": { - "query": "source:vault status:low $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [ + { + "facet": "@request.path", + "limit": 10, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + } } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] } } ], - "title": "LOWs", + "title": "Request paths by client token", "title_align": "left", "title_size": "16", - "type": "query_value" + "type": "toplist" }, - "id": 6029228368019808, + "id": 3605930163980802, "layout": { - "height": 1, - "width": 2, - "x": 2, - "y": 3 + "height": 4, + "width": 3, + "x": 9, + "y": 5 } }, { "definition": { - "autoscale": true, - "custom_links": [ - { - "label": "View related Security Signals", - "link": "/security?query=source:vault status:info" - } - ], - "precision": 2, "requests": [ { - "aggregator": "avg", - "conditional_formats": [ + "columns": [ { - "comparator": ">", - "custom_bg_color": "#84c1e0", - "palette": "custom_bg", - "value": 0 - } - ], - "security_query": { - "compute": { - "aggregation": "count" + "field": "status_line", + "width": "auto" + }, + { + "field": "matches", + "width": "auto" + }, + { + "field": "volume", + "width": "auto" + }, + { + "field": "service", + "width": "auto" }, - "group_by": [], - "index": "*", - "search": { - "query": "status:info source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + { + "field": "message", + "width": "auto" } - } + ], + "query": { + "data_source": "logs_pattern_stream", + "group_by": [ + { + "facet": "service" + } + ], + "indexes": [], + "query_string": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster " + }, + "response_format": "event_list" } ], - "title": "INFOs", + "title": "All logs by client token", "title_align": "left", "title_size": "16", - "type": "query_value" + "type": "list_stream" }, - "id": 8879352798849398, + "id": 7109789718928374, "layout": { - "height": 1, - "width": 2, - "x": 2, - "y": 4 + "height": 5, + "width": 12, + "x": 0, + "y": 9 } } ] }, - "id": 9, + "id": 10, "layout": { - "height": 6, - "is_column_break": true, + "height": 15, "width": 12, "x": 0, - "y": 26 + "y": 41 } }, { "definition": { - "background_color": "vivid_blue", + "background_color": "vivid_purple", "layout_type": "ordered", "show_title": true, - "title": "Client Token Activity", + "title": "Datadog Security Monitoring", "type": "group", "widgets": [ { "definition": { - "background_color": "blue", - "content": "Use this section to quickly investigate a vault token by looking up a Token Accessor. A Token Accessor is created and returned with every token that is created. The token accessor value can be used to look up a token's properties, revoke a token, renew a taken, and look up a token's capabilities on a path.\n\nYou can click on a client token in the Top Client Token Accessors widget and click on `Set $request.client_token_accessor`. This will update the widgets in the Client Token Investigator for all information related to the Client Token Accessor that was set in the template variables. \n\nA Client Token Accessor looks like this: `hmac-sha256:97ea0893c72ddf1b9fe3f2f477526ff06e89cceff7a74ea7016d2e3e9b25a804`", - "font_size": "12", + "background_color": "gray", + "content": "Datadog Security Monitoring analyzes HashiCorp Vault audit logs to detect threats to your environment in real time. If you aren't currently using [Datadog Security Monitoring](https://app.datadoghq.com/security), please consider signing up. ", + "font_size": "14", "has_padding": true, "show_tick": false, "text_align": "left", "tick_edge": "left", "tick_pos": "50%", "type": "note", - "vertical_align": "top" + "vertical_align": "center" }, - "id": 4622110032256590, + "id": 5944879021383970, "layout": { - "height": 2, - "width": 9, + "height": 1, + "width": 12, "x": 0, "y": 0 } }, { "definition": { - "requests": [ + "autoscale": true, + "custom_links": [ { - "formulas": [ - { - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } - } - ], - "queries": [ - { - "compute": { - "aggregation": "count" - }, - "data_source": "logs", - "group_by": [ - { - "facet": "@request.client_token_accessor", - "limit": 10, - "sort": { - "aggregation": "count", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" - } - } - ], - "response_format": "scalar" + "label": "View related Security Signals", + "link": "/security?query=source:vault status:critical" } ], - "title": "Client token by accessor", - "title_align": "left", - "title_size": "16", - "type": "toplist" - }, - "id": 8258230789541618, - "layout": { - "height": 4, - "width": 3, - "x": 9, - "y": 0 - } - }, - { - "definition": { + "precision": 2, "requests": [ { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#bc303c", + "palette": "custom_bg", + "value": 0 + } + ], "formulas": [ { - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } + "formula": "query1" } ], "queries": [ @@ -2157,120 +2407,105 @@ "compute": { "aggregation": "count" }, - "data_source": "logs", - "group_by": [ - { - "facet": "@request.remote_address", - "limit": 100, - "sort": { - "aggregation": "count", - "order": "asc" - } - } - ], + "data_source": "security_signals", + "group_by": [], "indexes": [ "*" ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "status:critical source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], "response_format": "scalar" } ], - "title": "Client token by IPs", + "title": "CRITICALs", "title_align": "left", "title_size": "16", - "type": "toplist" + "type": "query_value" }, - "id": 7321836322263742, + "id": 6255926866858486, "layout": { "height": 2, - "width": 4, + "width": 2, "x": 0, - "y": 2 + "y": 1 } }, { "definition": { - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" + "autoscale": true, + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?query=source:vault status:high" + } ], - "legend_layout": "auto", - "markers": [], + "precision": 2, "requests": [ { - "display_type": "bars", - "formulas": [ + "conditional_formats": [ { - "alias": "Requests by client token accessor", - "formula": "query1" + "comparator": ">", + "custom_bg_color": "#d33043", + "palette": "custom_bg", + "value": 0 } ], - "on_right_yaxis": false, "queries": [ { "compute": { "aggregation": "count" }, - "data_source": "logs", + "data_source": "security_signals", "group_by": [], "indexes": [ "*" ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "status:high source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], - "response_format": "timeseries", - "style": { - "line_type": "solid", - "line_width": "normal", - "palette": "cool" - } + "response_format": "scalar" } ], - "show_legend": true, - "title": "Historical activity by accessor", + "title": "HIGHs", "title_align": "left", "title_size": "16", - "type": "timeseries", - "yaxis": { - "include_zero": true, - "label": "", - "max": "auto", - "min": "auto", - "scale": "linear" - } + "type": "query_value" }, - "id": 5092863776380150, + "id": 2600798289917504, "layout": { "height": 2, - "width": 5, - "x": 4, - "y": 2 + "width": 2, + "x": 2, + "y": 1 } }, { "definition": { + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?query=@workflow.rule.name:{{@workflow.rule.name.value}}" + } + ], "requests": [ { + "conditional_formats": [ + { + "comparator": ">", + "palette": "white_on_red", + "value": 0 + } + ], "formulas": [ { - "cell_display_mode": "bar", - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } + "formula": "query1" } ], "queries": [ @@ -2278,10 +2513,10 @@ "compute": { "aggregation": "count" }, - "data_source": "logs", + "data_source": "security_signals", "group_by": [ { - "facet": "@request.operation", + "facet": "@workflow.rule.name", "limit": 10, "sort": { "aggregation": "count", @@ -2294,37 +2529,54 @@ ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], - "response_format": "scalar" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } } ], - "title": "Operations by client token", - "title_align": "left", - "title_size": "16", - "type": "query_table" + "title": "Security Signals", + "type": "toplist" }, - "id": 5099313152151602, + "id": 721282318874290, "layout": { - "height": 2, - "width": 3, - "x": 0, - "y": 4 + "height": 4, + "width": 4, + "x": 4, + "y": 1 } }, { "definition": { + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?query=@workflow.rule.name:{{@workflow.rule.name.value}}" + } + ], "requests": [ { + "conditional_formats": [ + { + "comparator": ">", + "palette": "white_on_red", + "value": 0 + } + ], "formulas": [ { - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } + "formula": "query1" } ], "queries": [ @@ -2332,10 +2584,10 @@ "compute": { "aggregation": "count" }, - "data_source": "logs", + "data_source": "security_signals", "group_by": [ { - "facet": "@auth.display_name", + "facet": "@evt.name", "limit": 10, "sort": { "aggregation": "count", @@ -2348,68 +2600,104 @@ ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], - "response_format": "scalar" + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "index": 0, + "order": "desc", + "type": "formula" + } + ] + } } ], - "title": "Top users by client token accessor ", - "title_align": "left", - "title_size": "16", + "title": "Security Signals by Events", "type": "toplist" }, - "id": 1645099613316488, + "id": 7444326215896084, "layout": { - "height": 2, + "height": 4, "width": 4, - "x": 3, - "y": 4 + "x": 8, + "y": 1 } }, { "definition": { - "columns": [ - "host", - "@type", - "@request.path" + "autoscale": true, + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?source:vault status:medium" + } ], - "indexes": [ - "vault" + "precision": 2, + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#e5a21c", + "palette": "custom_bg", + "value": 0 + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "security_signals", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "status:medium source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" + } + } + ], + "response_format": "scalar" + } ], - "message_display": "inline", - "query": "service:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster", - "show_date_column": true, - "show_message_column": true, - "sort": { - "column": "time", - "order": "desc" - }, - "title": "All logs by client token", + "title": "MEDIUMs", "title_align": "left", "title_size": "16", - "type": "log_stream" + "type": "query_value" }, - "id": 7109789718928374, + "id": 5260559479014138, "layout": { - "height": 4, - "width": 5, - "x": 7, - "y": 4 + "height": 2, + "width": 2, + "x": 0, + "y": 3 } }, { "definition": { + "autoscale": true, + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?query=source:vault status:low" + } + ], + "precision": 2, "requests": [ { - "formulas": [ + "conditional_formats": [ { - "formula": "query1", - "limit": { - "count": 50, - "order": "desc" - } + "comparator": ">", + "custom_bg_color": "#ffb52b", + "palette": "custom_bg", + "value": 0 } ], "queries": [ @@ -2417,44 +2705,51 @@ "compute": { "aggregation": "count" }, - "data_source": "logs", + "data_source": "security_signals", "group_by": [], "indexes": [ "*" ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "source:vault status:low $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], "response_format": "scalar" } ], - "title": "Mount types by client token", + "title": "LOWs", "title_align": "left", "title_size": "16", - "type": "toplist" + "type": "query_value" }, - "id": 4800477545973282, + "id": 6029228368019808, "layout": { - "height": 2, - "width": 3, - "x": 0, - "y": 6 + "height": 1, + "width": 2, + "x": 2, + "y": 3 } }, { "definition": { + "autoscale": true, + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?query=source:vault status:info" + } + ], + "precision": 2, "requests": [ { - "formulas": [ + "conditional_formats": [ { - "formula": "query1", - "limit": { - "count": 10, - "order": "desc" - } + "comparator": ">", + "custom_bg_color": "#84c1e0", + "palette": "custom_bg", + "value": 0 } ], "queries": [ @@ -2462,50 +2757,42 @@ "compute": { "aggregation": "count" }, - "data_source": "logs", - "group_by": [ - { - "facet": "@request.path", - "limit": 10, - "sort": { - "aggregation": "count", - "order": "desc" - } - } - ], + "data_source": "security_signals", + "group_by": [], "indexes": [ "*" ], "name": "query1", "search": { - "query": "source:vault $auth.client_token $request.client_token_accessor $request.remote_address $auth.display_name $request.mount_type $request.path $request.operation $api_url $vault_cluster" + "query": "status:info source:vault $logs.auth.client_token $logs.request.client_token_accessor $logs.request.remote_address $logs.auth.display_name $logs.request.mount_type $logs.request.path $logs.request.operation $api_url $vault_cluster" } } ], "response_format": "scalar" } ], - "title": "Request paths by client token", + "title": "INFOs", "title_align": "left", "title_size": "16", - "type": "toplist" + "type": "query_value" }, - "id": 3605930163980802, + "id": 8879352798849398, "layout": { - "height": 2, - "width": 4, - "x": 3, - "y": 6 + "height": 1, + "width": 2, + "x": 2, + "y": 4 } } ] }, - "id": 10, + "id": 9, "layout": { - "height": 9, + "height": 6, + "is_column_break": true, "width": 12, "x": 0, - "y": 32 + "y": 56 } } ] diff --git a/vault/manifest.json b/vault/manifest.json index 00bf722d512af..f074a42cda499 100644 --- a/vault/manifest.json +++ b/vault/manifest.json @@ -80,4 +80,4 @@ "vault_patern": "assets/saved_views/vault_patern.json" } } -} \ No newline at end of file +} From dcb7db1ce8aecd77548508c471541496f7f0d09a Mon Sep 17 00:00:00 2001 From: Zhengda Lu Date: Tue, 16 Jul 2024 09:28:42 -0400 Subject: [PATCH 62/68] [mongo] Continue coll/index stats collection if user is not authorized to perform aggregation (#18044) * Continue collection of coll stats if user is not authorized to perform collStats aggregation * add changelog * fix lint * continue on index stats collection if user is not authorized * update changelog --- mongo/changelog.d/18044.fixed | 1 + mongo/datadog_checks/mongo/collectors/coll_stats.py | 10 +++++++++- mongo/datadog_checks/mongo/collectors/index_stats.py | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 mongo/changelog.d/18044.fixed diff --git a/mongo/changelog.d/18044.fixed b/mongo/changelog.d/18044.fixed new file mode 100644 index 0000000000000..2fd210c9fbf3d --- /dev/null +++ b/mongo/changelog.d/18044.fixed @@ -0,0 +1 @@ +Fix coll or index stats metrics failure when the agent user is not authorized to perform $collStats or $indexStats aggregation on a collection. This fix prevents check to fail when an OperationFailure is raised to run $collStats or $indexStats on system collections such as system.replset on local database. diff --git a/mongo/datadog_checks/mongo/collectors/coll_stats.py b/mongo/datadog_checks/mongo/collectors/coll_stats.py index d8f5e8e8b9e00..6dbf68a6f9354 100644 --- a/mongo/datadog_checks/mongo/collectors/coll_stats.py +++ b/mongo/datadog_checks/mongo/collectors/coll_stats.py @@ -2,6 +2,7 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +from pymongo.errors import OperationFailure from six import iteritems from datadog_checks.base import AgentCheck @@ -32,7 +33,14 @@ def collect(self, api): coll_names = self._get_collections(api) for coll_name in coll_names: # Grab the stats from the collection - for coll_stats in api.coll_stats(self.db_name, coll_name): + try: + collection_stats = api.coll_stats(self.db_name, coll_name) + except OperationFailure as e: + # Atlas restricts $collStats on system collections + self.log.warning("Could not collect stats for collection %s: %s", coll_name, e) + continue + + for coll_stats in collection_stats: # Submit the metrics storage_stats = coll_stats.get('storageStats', {}) latency_stats = coll_stats.get('latencyStats', {}) diff --git a/mongo/datadog_checks/mongo/collectors/index_stats.py b/mongo/datadog_checks/mongo/collectors/index_stats.py index 425087b1d0c07..b0d0f4976e35f 100644 --- a/mongo/datadog_checks/mongo/collectors/index_stats.py +++ b/mongo/datadog_checks/mongo/collectors/index_stats.py @@ -2,6 +2,8 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +from pymongo.errors import OperationFailure + from datadog_checks.mongo.collectors.base import MongoCollector @@ -34,6 +36,9 @@ def collect(self, api): ] val = int(stats.get('accesses', {}).get('ops', 0)) self.gauge('mongodb.collection.indexes.accesses.ops', val, idx_tags) + except OperationFailure as e: + # Atlas restricts $indexStats on system collections + self.log.warning("Could not collect index stats for collection %s: %s", coll_name, e) except Exception as e: self.log.error("Could not fetch indexes stats for collection %s: %s", coll_name, e) raise e From 60b7ed1adb27efaef2f801a75a9f7fab06f9007c Mon Sep 17 00:00:00 2001 From: Seth Samuel Date: Tue, 16 Jul 2024 09:38:30 -0400 Subject: [PATCH 63/68] Fix postgres extension settings collection (#18043) --- postgres/changelog.d/18043.fixed | 1 + postgres/datadog_checks/postgres/metadata.py | 27 ++++++++++++++++--- .../tests/compose/resources/03_load_data.sh | 8 ++++++ postgres/tests/test_metadata.py | 1 + 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 postgres/changelog.d/18043.fixed diff --git a/postgres/changelog.d/18043.fixed b/postgres/changelog.d/18043.fixed new file mode 100644 index 0000000000000..afff232e73261 --- /dev/null +++ b/postgres/changelog.d/18043.fixed @@ -0,0 +1 @@ +Fixed postgres settings collection for common extensions diff --git a/postgres/datadog_checks/postgres/metadata.py b/postgres/datadog_checks/postgres/metadata.py index 37dd85495f137..3e13d445b32ab 100644 --- a/postgres/datadog_checks/postgres/metadata.py +++ b/postgres/datadog_checks/postgres/metadata.py @@ -42,6 +42,17 @@ FROM pg_settings """ +PG_EXTENSIONS_QUERY = """ +SELECT extname FROM pg_extension; +""" + +PG_EXTENSION_LOADER_QUERY = { + 'pg_trgm': "SELECT word_similarity('foo', 'bar');", + 'plpgsql': "DO $$ BEGIN PERFORM 1; END$$;", + 'pgcrypto': "SELECT armor('foo');", + 'hstore': "SELECT 'a=>1'::hstore;", +} + DATABASE_INFORMATION_QUERY = """ SELECT db.oid AS id, datname AS NAME, @@ -549,10 +560,20 @@ def _collect_metadata_for_database(self, dbname): def _collect_postgres_settings(self): with self._check._get_main_db() as conn: with conn.cursor(cursor_factory=CommenterDictCursor) as cursor: + # Get loaded extensions + cursor.execute(PG_EXTENSIONS_QUERY) + rows = cursor.fetchall() + query = PG_SETTINGS_QUERY + for row in rows: + extension = row['extname'] + if extension in PG_EXTENSION_LOADER_QUERY: + query = PG_EXTENSION_LOADER_QUERY[extension] + "\n" + query + else: + self._log.warning("unable to collect settings for unknown extension %s", extension) + if self.pg_settings_ignored_patterns: - query = PG_SETTINGS_QUERY + " WHERE name NOT LIKE ALL(%s)" - else: - query = PG_SETTINGS_QUERY + query = query + " WHERE name NOT LIKE ALL(%s)" + self._log.debug( "Running query [%s] and patterns are %s", query, diff --git a/postgres/tests/compose/resources/03_load_data.sh b/postgres/tests/compose/resources/03_load_data.sh index 0055f60dfd527..637b4e4a0cdc9 100755 --- a/postgres/tests/compose/resources/03_load_data.sh +++ b/postgres/tests/compose/resources/03_load_data.sh @@ -1,6 +1,14 @@ #!/bin/bash set -e +# Create extensions for settings testing +psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" datadog_test <<-EOSQL + CREATE EXTENSION IF NOT EXISTS pg_trgm; + CREATE EXTENSION IF NOT EXISTS hstore; + CREATE EXTENSION IF NOT EXISTS pgcrypto; + +EOSQL + psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" datadog_test <<-EOSQL CREATE TABLE cities (city VARCHAR(255), country VARCHAR(255), PRIMARY KEY(city)); INSERT INTO cities VALUES ('New York', 'USA'), ('Beautiful city of lights', 'France'); diff --git a/postgres/tests/test_metadata.py b/postgres/tests/test_metadata.py index 331841bab07d4..f334ab4c0beb6 100644 --- a/postgres/tests/test_metadata.py +++ b/postgres/tests/test_metadata.py @@ -46,6 +46,7 @@ def test_collect_metadata(integration_check, dbm_instance, aggregator): assert len(event["metadata"]) > 0 assert set(event["metadata"][0].keys()) == {'name', 'setting', 'source', 'sourcefile', 'pending_restart'} assert all(not k['name'].startswith('max_wal') for k in event['metadata']) + assert next((k for k in event['metadata'] if k['name'].startswith('pg_trgm')), None) is not None statement_timeout_setting = next((k for k in event['metadata'] if k['name'] == 'statement_timeout'), None) assert statement_timeout_setting is not None # statement_timeout should be server level setting not session level From c7a9e29255a91531fb6096733edf3ac2a22716c9 Mon Sep 17 00:00:00 2001 From: Seth Samuel Date: Tue, 16 Jul 2024 10:37:39 -0400 Subject: [PATCH 64/68] Improve log error for invalid ssl option in postgres config (#18047) --- postgres/changelog.d/18047.added | 1 + postgres/datadog_checks/postgres/config.py | 5 ++++- postgres/datadog_checks/postgres/postgres.py | 2 +- postgres/tests/conftest.py | 4 ++-- postgres/tests/test_metrics_cache.py | 4 ++-- 5 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 postgres/changelog.d/18047.added diff --git a/postgres/changelog.d/18047.added b/postgres/changelog.d/18047.added new file mode 100644 index 0000000000000..b55f8acdb82c5 --- /dev/null +++ b/postgres/changelog.d/18047.added @@ -0,0 +1 @@ +Added warning when ssl option for Postgres check is invalid diff --git a/postgres/datadog_checks/postgres/config.py b/postgres/datadog_checks/postgres/config.py index 7437033f7206a..276f5a7b68555 100644 --- a/postgres/datadog_checks/postgres/config.py +++ b/postgres/datadog_checks/postgres/config.py @@ -31,7 +31,7 @@ class PostgresConfig: GAUGE = AgentCheck.gauge MONOTONIC = AgentCheck.monotonic_count - def __init__(self, instance, init_config): + def __init__(self, instance, init_config, check): self.host = instance.get('host', '') if not self.host: raise ConfigurationError('Specify a Postgres host to connect to.') @@ -75,6 +75,9 @@ def __init__(self, instance, init_config): ssl = instance.get('ssl', "allow") if ssl in SSL_MODES: self.ssl_mode = ssl + else: + check.warning(f"Invalid ssl option '{ssl}', should be one of {SSL_MODES}. Defaulting to 'allow'.") + self.ssl_mode = "allow" self.ssl_cert = instance.get('ssl_cert', None) self.ssl_root_cert = instance.get('ssl_root_cert', None) diff --git a/postgres/datadog_checks/postgres/postgres.py b/postgres/datadog_checks/postgres/postgres.py index 081385f11793e..7a8d83316c30e 100644 --- a/postgres/datadog_checks/postgres/postgres.py +++ b/postgres/datadog_checks/postgres/postgres.py @@ -112,7 +112,7 @@ def __init__(self, name, init_config, instances): "DEPRECATION NOTICE: The managed_identity option is deprecated and will be removed in a future version." " Please use the new azure.managed_authentication option instead." ) - self._config = PostgresConfig(self.instance, self.init_config) + self._config = PostgresConfig(self.instance, self.init_config, self) self.cloud_metadata = self._config.cloud_metadata self.tags = self._config.tags # Keep a copy of the tags without the internal resource tags so they can be used for paths that don't diff --git a/postgres/tests/conftest.py b/postgres/tests/conftest.py index 390d95cdbc54a..91ad37bdde6ab 100644 --- a/postgres/tests/conftest.py +++ b/postgres/tests/conftest.py @@ -106,13 +106,13 @@ def pg_replica_logical(): @pytest.fixture def metrics_cache(pg_instance): - config = PostgresConfig(instance=pg_instance, init_config={}) + config = PostgresConfig(instance=pg_instance, init_config={}, check={'warning': print}) return PostgresMetricsCache(config) @pytest.fixture def metrics_cache_replica(pg_replica_instance): - config = PostgresConfig(instance=pg_replica_instance, init_config={}) + config = PostgresConfig(instance=pg_replica_instance, init_config={}, check={'warning': print}) return PostgresMetricsCache(config) diff --git a/postgres/tests/test_metrics_cache.py b/postgres/tests/test_metrics_cache.py index efb1067263ecf..4507e2c6d06a8 100644 --- a/postgres/tests/test_metrics_cache.py +++ b/postgres/tests/test_metrics_cache.py @@ -28,7 +28,7 @@ ], ) def test_aurora_replication_metrics(pg_instance, version, is_aurora, expected_metrics): - config = PostgresConfig(instance=pg_instance, init_config={}) + config = PostgresConfig(instance=pg_instance, init_config={}, check={'warning': print}) cache = PostgresMetricsCache(config) replication_metrics = cache.get_replication_metrics(version, is_aurora) assert replication_metrics == expected_metrics @@ -50,7 +50,7 @@ def test_dbm_enabled_conn_metric(pg_instance, version, is_dbm_enabled, expected_ pg_instance['dbm'] = is_dbm_enabled pg_instance['collect_resources'] = {'enabled': False} pg_instance['collect_database_size_metrics'] = False - config = PostgresConfig(instance=pg_instance, init_config={}) + config = PostgresConfig(instance=pg_instance, init_config={}, check={'warning': print}) cache = PostgresMetricsCache(config) instance_metrics = cache.get_instance_metrics(version) assert instance_metrics['metrics'] == expected_metrics From 7164c902bfb96027352415095d72b04ed8c151ff Mon Sep 17 00:00:00 2001 From: Steven Yuen Date: Tue, 16 Jul 2024 11:12:29 -0400 Subject: [PATCH 65/68] minor fix (#18049) --- vault/assets/dashboards/vault_overview.json | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/vault/assets/dashboards/vault_overview.json b/vault/assets/dashboards/vault_overview.json index 790c193d5234b..2007dc7315fe1 100644 --- a/vault/assets/dashboards/vault_overview.json +++ b/vault/assets/dashboards/vault_overview.json @@ -204,9 +204,11 @@ "count": 50, "display_format": "countsAndList", "hide_zero_counts": true, + "last_triggered_format": "relative", "query": "integration:vault", "show_last_triggered": false, "show_priority": false, + "show_status": true, "sort": "status,asc", "start": 0, "summary_type": "monitors", @@ -264,7 +266,7 @@ { "data_source": "metrics", "name": "query5", - "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" + "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count().rollup(sum)" } ], "response_format": "timeseries", @@ -279,7 +281,7 @@ "formulas": [ { "alias": "Week Before", - "formula": "week_before(query0)" + "formula": "2 * week_before(query0)" } ], "on_right_yaxis": false, @@ -287,7 +289,7 @@ { "data_source": "metrics", "name": "query0", - "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" + "query": "sum:vault.vault.core.handle.login_request.count{$vault_cluster,$api_url}.as_count().fill(null).rollup(sum)" } ], "response_format": "timeseries", @@ -344,7 +346,7 @@ { "data_source": "metrics", "name": "query4", - "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" + "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count().rollup(sum)" } ], "response_format": "timeseries", @@ -359,7 +361,7 @@ "formulas": [ { "alias": "Week Before", - "formula": "week_before(query0)" + "formula": "2 * week_before(query0)" } ], "on_right_yaxis": false, @@ -367,7 +369,7 @@ { "data_source": "metrics", "name": "query0", - "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url} by {vault_cluster,api_url}.as_count()" + "query": "sum:vault.vault.core.handle.request.count{$vault_cluster,$api_url}.as_count().fill(null).rollup(sum)" } ], "response_format": "timeseries", @@ -1115,6 +1117,7 @@ "has_padding": true, "show_tick": false, "text_align": "left", + "tick_edge": "bottom", "tick_pos": "50%", "type": "note", "vertical_align": "center" @@ -2796,4 +2799,4 @@ } } ] -} +} \ No newline at end of file From 9f5d8f17b4e53d4014287e6cf17a9f272341c539 Mon Sep 17 00:00:00 2001 From: Steven Yuen Date: Tue, 16 Jul 2024 11:12:36 -0400 Subject: [PATCH 66/68] Sy/temporal fix (#18050) * test fix * changelog --- temporal/changelog.d/18050.added | 1 + temporal/datadog_checks/temporal/metrics.py | 5 ++++- temporal/metadata.csv | 1 + temporal/tests/common.py | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 temporal/changelog.d/18050.added diff --git a/temporal/changelog.d/18050.added b/temporal/changelog.d/18050.added new file mode 100644 index 0000000000000..e2ccb3419c5bf --- /dev/null +++ b/temporal/changelog.d/18050.added @@ -0,0 +1 @@ +Properly collect `temporal.add_search_attributes.workflow_failure` as a gauge diff --git a/temporal/datadog_checks/temporal/metrics.py b/temporal/datadog_checks/temporal/metrics.py index 22f15d75d2f84..5ddc972d73b96 100644 --- a/temporal/datadog_checks/temporal/metrics.py +++ b/temporal/datadog_checks/temporal/metrics.py @@ -43,7 +43,10 @@ 'wf_too_many_pending_external_workflow_signals': 'wf_too_many_pending.external_workflow_signals', # Frontend 'add_search_attributes_workflow_success': 'add_search_attributes.workflow_success', - 'add_search_attributes_workflow_failure': 'add_search_attributes.workflow_failure', + 'add_search_attributes_workflow_failure': { + 'name': 'add_search_attributes.workflow_failure', + 'type': 'native_dynamic', + }, 'delete_namespace_workflow_success': 'delete_namespace.workflow_success', 'delete_namespace_workflow_failure': 'delete_namespace.workflow_failure', 'version_check_success': 'version_check.success', diff --git a/temporal/metadata.csv b/temporal/metadata.csv index c12b18a0e24f6..2d2ead3224550 100644 --- a/temporal/metadata.csv +++ b/temporal/metadata.csv @@ -19,6 +19,7 @@ temporal.server.activity_info.size.count,count,,,,,0,temporal,activity info size temporal.server.activity_info.size.sum,count,,byte,,,0,temporal,activity info size sum, temporal.server.activity_info.sum,count,,,,,0,temporal,activity info sum, temporal.server.add_search_attributes.failures.count,count,,,,,0,temporal,add search attributes failures count, +temporal.server.add_search_attributes.workflow_failure,gauge,,,,,0,temporal,add search attributes workflow failure count, temporal.server.add_search_attributes.workflow_failure.count,count,,,,,0,temporal,add search attributes workflow failure count, temporal.server.add_search_attributes.workflow_success.count,count,,,,,0,temporal,add search attributes workflow success count, temporal.server.archival.task_invalid_uri.count,count,,,,,0,temporal,archival task invalid uri count, diff --git a/temporal/tests/common.py b/temporal/tests/common.py index 9e756274f8402..92f53ac55173e 100644 --- a/temporal/tests/common.py +++ b/temporal/tests/common.py @@ -106,6 +106,7 @@ "temporal.server.activity_info.size.count", "temporal.server.activity_info.size.sum", "temporal.server.activity_info.sum", + "temporal.server.add_search_attributes.workflow_failure", "temporal.server.add_search_attributes.workflow_failure.count", "temporal.server.add_search_attributes.workflow_success.count", "temporal.server.buffered_events.bucket", From 33d4a9f137adbf2e52ae668ece3a79e224fdade6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?zoe=C2=A0=E2=9C=A8?= <9274242+zoedt@users.noreply.github.com> Date: Tue, 16 Jul 2024 11:55:44 -0400 Subject: [PATCH 67/68] [NDM] [Cisco ACI] Add common NDM tags to metrics (#18017) * Update interface status metric name to be more consistent with other metrics * Add common NDM metric tags * Add changelog * Add missing common tags (device_id, device_hostname) --- cisco_aci/changelog.d/18017.added | 1 + cisco_aci/datadog_checks/cisco_aci/fabric.py | 41 +++--- cisco_aci/tests/fixtures/metadata.py | 126 ++++++++++------- cisco_aci/tests/test_fabric.py | 136 ++++++++++++++++--- 4 files changed, 218 insertions(+), 86 deletions(-) create mode 100644 cisco_aci/changelog.d/18017.added diff --git a/cisco_aci/changelog.d/18017.added b/cisco_aci/changelog.d/18017.added new file mode 100644 index 0000000000000..392b6ce21b603 --- /dev/null +++ b/cisco_aci/changelog.d/18017.added @@ -0,0 +1 @@ +[NDM] [Cisco ACI] Add common NDM tags to metrics diff --git a/cisco_aci/datadog_checks/cisco_aci/fabric.py b/cisco_aci/datadog_checks/cisco_aci/fabric.py index e8b88a0f6a7ab..4417be56457d9 100644 --- a/cisco_aci/datadog_checks/cisco_aci/fabric.py +++ b/cisco_aci/datadog_checks/cisco_aci/fabric.py @@ -82,14 +82,15 @@ def submit_nodes_health_and_metadata(self, nodes, pods): for n in nodes: hostname = helpers.get_fabric_hostname(n) - user_tags = self.instance.get('tags', []) - tags = self.tagger.get_fabric_tags(n, 'fabricNode') - self.external_host_tags[hostname] = tags + self.check_tags + user_tags - node = n.get('fabricNode', {}) node_attrs = node.get('attributes', {}) node_id = node_attrs.get('id', {}) + user_tags = self.instance.get('tags', []) + tags = self.tagger.get_fabric_tags(n, 'fabricNode') + tags.extend(self.ndm_common_tags(node_attrs.get('address', ''), hostname, self.namespace)) + self.external_host_tags[hostname] = tags + self.check_tags + user_tags + pod_id = helpers.get_pod_from_dn(node_attrs['dn']) if not node_id or not pod_id: continue @@ -116,6 +117,7 @@ def process_eth(self, node): self.log.info("processing ethernet ports for %s", node.get('id')) hostname = helpers.get_fabric_hostname(node) pod_id = helpers.get_pod_from_dn(node['dn']) + common_tags = self.ndm_common_tags(node.get('address', ''), hostname, self.namespace) try: eth_list = self.api.get_eth_list(pod_id, node['id']) except (exceptions.APIConnectionException, exceptions.APIParsingException): @@ -125,8 +127,9 @@ def process_eth(self, node): eth_attrs = helpers.get_attributes(e) eth_id = eth_attrs['id'] tags = self.tagger.get_fabric_tags(e, 'l1PhysIf') + tags.extend(common_tags) if PY3: - interfaces.append(self.create_interface_metadata(e, node['address'], tags, hostname)) + interfaces.append(self.create_interface_metadata(e, node.get('address', ''), tags, hostname)) try: stats = self.api.get_eth_stats(pod_id, node['id'], eth_id) self.submit_fabric_metric(stats, tags, 'l1PhysIf', hostname=hostname) @@ -261,21 +264,17 @@ def batch_payloads(self, devices, interfaces, collect_ts): def submit_node_metadata(self, node_attrs, tags): node = Node(attributes=node_attrs) - id_tags = ['namespace:{}'.format(self.namespace)] + hostname = helpers.get_hostname_from_dn(node.attributes.dn) + id_tags = self.ndm_common_tags(node.attributes.address, hostname, self.namespace) device_tags = [ 'device_vendor:{}'.format(VENDOR_CISCO), - 'device_namespace:{}'.format(self.namespace), - 'device_hostname:{}'.format(node.attributes.dn), - 'hostname:{}'.format(node.attributes.dn), - 'device_ip:{}'.format(node.attributes.address), - 'device_id:{}:{}'.format(self.namespace, node.attributes.address), "source:cisco-aci", ] device = DeviceMetadata( id='{}:{}'.format(self.namespace, node.attributes.address), id_tags=id_tags, tags=device_tags + tags, - name=node.attributes.dn, + name=hostname, ip_address=node.attributes.address, model=node.attributes.model, fabric_st=node.attributes.fabric_st, @@ -301,12 +300,14 @@ def create_interface_metadata(self, phys_if, address, tags, hostname): interface.oper_status = eth.ethpm_phys_if.attributes.oper_st if interface.status: new_tags = tags.copy() - new_tags.extend( - [ - "device_ip:{}".format(address), - "device_namespace:{}".format(self.namespace), - "interface.status:{}".format(interface.status), - ] - ) - self.gauge('cisco_aci.fabric.node.interface.status', 1, tags=new_tags, hostname=hostname) + new_tags.extend(["port.status:{}".format(interface.status)]) + self.gauge('cisco_aci.fabric.port.status', 1, tags=new_tags, hostname=hostname) return interface.model_dump(exclude_none=True) + + def ndm_common_tags(self, address, hostname, namespace): + return [ + 'device_ip:{}'.format(address), + 'device_namespace:{}'.format(namespace), + 'device_hostname:{}'.format(hostname), + 'device_id:{}:{}'.format(namespace, address), + ] diff --git a/cisco_aci/tests/fixtures/metadata.py b/cisco_aci/tests/fixtures/metadata.py index 7afb1b4e770ee..9258dbd850c16 100644 --- a/cisco_aci/tests/fixtures/metadata.py +++ b/cisco_aci/tests/fixtures/metadata.py @@ -13,26 +13,30 @@ DEVICE_METADATA = [ { 'id': 'default:10.0.200.0', - 'id_tags': ['namespace:default'], + 'id_tags': [ + 'device_ip:10.0.200.0', + 'device_namespace:default', + 'device_hostname:pod-1-node-101', + 'device_id:default:10.0.200.0', + ], 'integration': 'cisco-aci', 'device_type': 'switch', 'tags': [ 'device_vendor:cisco', - 'device_namespace:default', - 'device_hostname:topology/pod-1/node-101', - 'hostname:topology/pod-1/node-101', - 'device_ip:10.0.200.0', - 'device_id:default:10.0.200.0', 'source:cisco-aci', 'switch_role:leaf', 'apic_role:leaf', 'node_id:101', 'fabric_state:active', 'fabric_pod_id:1', + 'device_ip:10.0.200.0', + 'device_namespace:default', + 'device_hostname:pod-1-node-101', + 'device_id:default:10.0.200.0', ], 'ip_address': '10.0.200.0', 'model': 'N9K-C93180YC-FX', - 'name': 'topology/pod-1/node-101', + 'name': 'pod-1-node-101', 'serial_number': 'FDO20440TS1', 'status': 1, 'vendor': 'cisco', @@ -40,26 +44,30 @@ }, { 'id': 'default:10.0.200.1', - 'id_tags': ['namespace:default'], + 'id_tags': [ + 'device_ip:10.0.200.1', + 'device_namespace:default', + 'device_hostname:pod-1-node-102', + 'device_id:default:10.0.200.1', + ], 'integration': 'cisco-aci', 'device_type': 'switch', 'tags': [ 'device_vendor:cisco', - 'device_namespace:default', - 'device_hostname:topology/pod-1/node-102', - 'hostname:topology/pod-1/node-102', - 'device_ip:10.0.200.1', - 'device_id:default:10.0.200.1', 'source:cisco-aci', 'switch_role:leaf', 'apic_role:leaf', 'node_id:102', 'fabric_state:active', 'fabric_pod_id:1', + 'device_ip:10.0.200.1', + 'device_namespace:default', + 'device_hostname:pod-1-node-102', + 'device_id:default:10.0.200.1', ], 'ip_address': '10.0.200.1', 'model': 'N9K-C93180YC-FX', - 'name': 'topology/pod-1/node-102', + 'name': 'pod-1-node-102', 'serial_number': 'FDO20510HCA', 'status': 1, 'vendor': 'cisco', @@ -67,26 +75,30 @@ }, { 'id': 'default:10.0.200.2', - 'id_tags': ['namespace:default'], + 'id_tags': [ + 'device_ip:10.0.200.2', + 'device_namespace:default', + 'device_hostname:pod-1-node-202', + 'device_id:default:10.0.200.2', + ], 'integration': 'cisco-aci', 'device_type': 'switch', 'tags': [ 'device_vendor:cisco', - 'device_namespace:default', - 'device_hostname:topology/pod-1/node-202', - 'hostname:topology/pod-1/node-202', - 'device_ip:10.0.200.2', - 'device_id:default:10.0.200.2', 'source:cisco-aci', 'switch_role:spine', 'apic_role:spine', 'node_id:202', 'fabric_state:active', 'fabric_pod_id:1', + 'device_ip:10.0.200.2', + 'device_namespace:default', + 'device_hostname:pod-1-node-202', + 'device_id:default:10.0.200.2', ], 'ip_address': '10.0.200.2', 'model': 'N9K-C9336PQ', - 'name': 'topology/pod-1/node-202', + 'name': 'pod-1-node-202', 'serial_number': 'SAL2014N5T7', 'status': 1, 'vendor': 'cisco', @@ -94,25 +106,29 @@ }, { 'id': 'default:10.0.200.3', - 'id_tags': ['namespace:default'], + 'id_tags': [ + 'device_ip:10.0.200.3', + 'device_namespace:default', + 'device_hostname:pod-1-node-3', + 'device_id:default:10.0.200.3', + ], 'integration': 'cisco-aci', 'device_type': 'other', 'tags': [ 'device_vendor:cisco', - 'device_namespace:default', - 'device_hostname:topology/pod-1/node-3', - 'hostname:topology/pod-1/node-3', - 'device_ip:10.0.200.3', - 'device_id:default:10.0.200.3', 'source:cisco-aci', 'apic_role:controller', 'node_id:3', 'fabric_state:unknown', 'fabric_pod_id:1', + 'device_ip:10.0.200.3', + 'device_namespace:default', + 'device_hostname:pod-1-node-3', + 'device_id:default:10.0.200.3', ], 'ip_address': '10.0.200.3', 'model': 'APIC-SERVER-M1', - 'name': 'topology/pod-1/node-3', + 'name': 'pod-1-node-3', 'serial_number': 'FCH1927V11T', 'status': 4, 'vendor': 'cisco', @@ -120,25 +136,29 @@ }, { 'id': 'default:10.0.200.4', - 'id_tags': ['namespace:default'], + 'id_tags': [ + 'device_ip:10.0.200.4', + 'device_namespace:default', + 'device_hostname:pod-1-node-1', + 'device_id:default:10.0.200.4', + ], 'integration': 'cisco-aci', 'device_type': 'other', 'tags': [ 'device_vendor:cisco', - 'device_namespace:default', - 'device_hostname:topology/pod-1/node-1', - 'hostname:topology/pod-1/node-1', - 'device_ip:10.0.200.4', - 'device_id:default:10.0.200.4', 'source:cisco-aci', 'apic_role:controller', 'node_id:1', 'fabric_state:unknown', 'fabric_pod_id:1', + 'device_ip:10.0.200.4', + 'device_namespace:default', + 'device_hostname:pod-1-node-1', + 'device_id:default:10.0.200.4', ], 'ip_address': '10.0.200.4', 'model': 'APIC-SERVER-M1', - 'name': 'topology/pod-1/node-1', + 'name': 'pod-1-node-1', 'serial_number': 'FCH1928V0SL', 'status': 4, 'vendor': 'cisco', @@ -146,26 +166,30 @@ }, { 'id': 'default:10.0.200.5', - 'id_tags': ['namespace:default'], + 'id_tags': [ + 'device_ip:10.0.200.5', + 'device_namespace:default', + 'device_hostname:pod-1-node-201', + 'device_id:default:10.0.200.5', + ], 'integration': 'cisco-aci', 'device_type': 'switch', 'tags': [ 'device_vendor:cisco', - 'device_namespace:default', - 'device_hostname:topology/pod-1/node-201', - 'hostname:topology/pod-1/node-201', - 'device_ip:10.0.200.5', - 'device_id:default:10.0.200.5', 'source:cisco-aci', 'switch_role:spine', 'apic_role:spine', 'node_id:201', 'fabric_state:active', 'fabric_pod_id:1', + 'device_ip:10.0.200.5', + 'device_namespace:default', + 'device_hostname:pod-1-node-201', + 'device_id:default:10.0.200.5', ], 'ip_address': '10.0.200.5', 'model': 'N9K-C9336PQ', - 'name': 'topology/pod-1/node-201', + 'name': 'pod-1-node-201', 'serial_number': 'SAL2014N5U4', 'status': 1, 'vendor': 'cisco', @@ -173,25 +197,29 @@ }, { 'id': 'default:10.0.200.6', - 'id_tags': ['namespace:default'], + 'id_tags': [ + 'device_ip:10.0.200.6', + 'device_namespace:default', + 'device_hostname:pod-1-node-2', + 'device_id:default:10.0.200.6', + ], 'integration': 'cisco-aci', 'device_type': 'other', 'tags': [ 'device_vendor:cisco', - 'device_namespace:default', - 'device_hostname:topology/pod-1/node-2', - 'hostname:topology/pod-1/node-2', - 'device_ip:10.0.200.6', - 'device_id:default:10.0.200.6', 'source:cisco-aci', 'apic_role:controller', 'node_id:2', 'fabric_state:unknown', 'fabric_pod_id:1', + 'device_ip:10.0.200.6', + 'device_namespace:default', + 'device_hostname:pod-1-node-2', + 'device_id:default:10.0.200.6', ], 'ip_address': '10.0.200.6', 'model': 'APIC-SERVER-M1', - 'name': 'topology/pod-1/node-2', + 'name': 'pod-1-node-2', 'serial_number': 'FCH1928V06Q', 'status': 4, 'vendor': 'cisco', diff --git a/cisco_aci/tests/test_fabric.py b/cisco_aci/tests/test_fabric.py index 4d15cb7be62d5..8a4343a50bf08 100644 --- a/cisco_aci/tests/test_fabric.py +++ b/cisco_aci/tests/test_fabric.py @@ -29,24 +29,55 @@ def test_fabric_mocked(aggregator): api.wrapper_factory = common.FakeFabricSessionWrapper check._api_cache[hash_mutable(common.CONFIG_WITH_TAGS)] = api + node101 = '10.0.200.0' + node102 = '10.0.200.1' + node201 = '10.0.200.5' + node202 = '10.0.200.2' + hn101 = 'pod-1-node-101' + hn102 = 'pod-1-node-102' + hn201 = 'pod-1-node-201' + hn202 = 'pod-1-node-202' + namespace = 'default' + + device_tags_101 = [ + 'device_hostname:{}'.format(hn101), + 'device_id:{}:{}'.format(namespace, node101), + 'device_ip:{}'.format(node101), + 'device_namespace:{}'.format(namespace), + ] + device_tags_102 = [ + 'device_hostname:{}'.format(hn102), + 'device_id:{}:{}'.format(namespace, node102), + 'device_ip:{}'.format(node102), + 'device_namespace:{}'.format(namespace), + ] + device_tags_201 = [ + 'device_hostname:{}'.format(hn201), + 'device_id:{}:{}'.format(namespace, node201), + 'device_ip:{}'.format(node201), + 'device_namespace:{}'.format(namespace), + ] + device_tags_202 = [ + 'device_hostname:{}'.format(hn202), + 'device_id:{}:{}'.format(namespace, node202), + 'device_ip:{}'.format(node202), + 'device_namespace:{}'.format(namespace), + ] + tags000 = ['cisco', 'project:cisco_aci', 'medium:broadcast', 'snmpTrapSt:enable', 'fabric_pod_id:1'] - tags101 = tags000 + ['node_id:101'] - tags102 = tags000 + ['node_id:102'] - tags201 = tags000 + ['node_id:201'] - tags202 = tags000 + ['node_id:202'] + tags101 = tags000 + ['node_id:101'] + device_tags_101 + tags102 = tags000 + ['node_id:102'] + device_tags_102 + tags201 = tags000 + ['node_id:201'] + device_tags_201 + tags202 = tags000 + ['node_id:202'] + device_tags_202 tags = ['fabric_state:active', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci'] leaf101 = ['switch_role:leaf', 'apic_role:leaf', 'node_id:101'] leaf102 = ['switch_role:leaf', 'apic_role:leaf', 'node_id:102'] leaf201 = ['switch_role:spine', 'apic_role:spine', 'node_id:201'] leaf202 = ['switch_role:spine', 'apic_role:spine', 'node_id:202'] - tagsleaf101 = tags + leaf101 - tagsleaf102 = tags + leaf102 - tagsspine201 = tags + leaf201 - tagsspine202 = tags + leaf202 - hn101 = 'pod-1-node-101' - hn102 = 'pod-1-node-102' - hn201 = 'pod-1-node-201' - hn202 = 'pod-1-node-202' + tagsleaf101 = tags + leaf101 + device_tags_101 + tagsleaf102 = tags + leaf102 + device_tags_102 + tagsspine201 = tags + leaf201 + device_tags_201 + tagsspine202 = tags + leaf202 + device_tags_202 with freeze_time("2012-01-14 03:21:34"): check.check({}) @@ -70,7 +101,6 @@ def test_fabric_mocked(aggregator): } for interface in EXPECTED_INTERFACE_METADATA: - print(interface) hn = interface_tag_mapping.get(interface.device_id) device_namespace, device_ip = interface.device_id.split(':') interface_tags = [ @@ -81,11 +111,11 @@ def test_fabric_mocked(aggregator): 'fabric_pod_id:1', 'device_ip:{}'.format(device_ip), 'device_namespace:{}'.format(device_namespace), - 'interface.status:{}'.format(interface.status), + 'device_hostname:{}'.format(hn), + 'device_id:{}'.format(interface.device_id), + 'port.status:{}'.format(interface.status), ] - aggregator.assert_metric( - 'cisco_aci.fabric.node.interface.status', value=1.0, tags=interface_tags, hostname=hn - ) + aggregator.assert_metric('cisco_aci.fabric.port.status', value=1.0, tags=interface_tags, hostname=hn) metric_name = 'cisco_aci.fabric.port.ingr_total.bytes.cum' aggregator.assert_metric(metric_name, value=0.0, tags=tags101 + ['port:eth101/1/43'], hostname=hn101) @@ -919,6 +949,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:3', 'fabric_state:unknown', + 'device_hostname:pod-1-node-3', + 'device_id:default:10.0.200.3', + 'device_ip:10.0.200.3', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -932,6 +966,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:1', 'fabric_state:unknown', + 'device_hostname:pod-1-node-1', + 'device_id:default:10.0.200.4', + 'device_ip:10.0.200.4', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -957,6 +995,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:2', 'fabric_state:unknown', + 'device_hostname:pod-1-node-2', + 'device_id:default:10.0.200.6', + 'device_ip:10.0.200.6', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -1186,6 +1228,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:3', 'fabric_state:unknown', + 'device_hostname:pod-1-node-3', + 'device_id:default:10.0.200.3', + 'device_ip:10.0.200.3', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -1199,6 +1245,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:1', 'fabric_state:unknown', + 'device_hostname:pod-1-node-1', + 'device_id:default:10.0.200.4', + 'device_ip:10.0.200.4', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -1224,6 +1274,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:2', 'fabric_state:unknown', + 'device_hostname:pod-1-node-2', + 'device_id:default:10.0.200.6', + 'device_ip:10.0.200.6', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -1242,6 +1296,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:3', 'fabric_state:unknown', + 'device_hostname:pod-1-node-3', + 'device_id:default:10.0.200.3', + 'device_ip:10.0.200.3', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -1255,6 +1313,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:1', 'fabric_state:unknown', + 'device_hostname:pod-1-node-1', + 'device_id:default:10.0.200.4', + 'device_ip:10.0.200.4', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -1269,6 +1331,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:2', 'fabric_state:unknown', + 'device_hostname:pod-1-node-2', + 'device_id:default:10.0.200.6', + 'device_ip:10.0.200.6', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2067,6 +2133,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:3', 'fabric_state:unknown', + 'device_hostname:pod-1-node-3', + 'device_id:default:10.0.200.3', + 'device_ip:10.0.200.3', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2080,6 +2150,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:1', 'fabric_state:unknown', + 'device_hostname:pod-1-node-1', + 'device_id:default:10.0.200.4', + 'device_ip:10.0.200.4', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2094,6 +2168,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:2', 'fabric_state:unknown', + 'device_hostname:pod-1-node-2', + 'device_id:default:10.0.200.6', + 'device_ip:10.0.200.6', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2336,6 +2414,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:3', 'fabric_state:unknown', + 'device_hostname:pod-1-node-3', + 'device_id:default:10.0.200.3', + 'device_ip:10.0.200.3', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2349,6 +2431,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:1', 'fabric_state:unknown', + 'device_hostname:pod-1-node-1', + 'device_id:default:10.0.200.4', + 'device_ip:10.0.200.4', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2374,6 +2460,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:2', 'fabric_state:unknown', + 'device_hostname:pod-1-node-2', + 'device_id:default:10.0.200.6', + 'device_ip:10.0.200.6', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2571,6 +2661,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:3', 'fabric_state:unknown', + 'device_hostname:pod-1-node-3', + 'device_id:default:10.0.200.3', + 'device_ip:10.0.200.3', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2584,6 +2678,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:1', 'fabric_state:unknown', + 'device_hostname:pod-1-node-1', + 'device_id:default:10.0.200.4', + 'device_ip:10.0.200.4', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', @@ -2598,6 +2696,10 @@ def test_fabric_mocked(aggregator): 'apic_role:controller', 'node_id:2', 'fabric_state:unknown', + 'device_hostname:pod-1-node-2', + 'device_id:default:10.0.200.6', + 'device_ip:10.0.200.6', + 'device_namespace:default', 'fabric_pod_id:1', 'cisco', 'project:cisco_aci', From a469c2526a31df9d901ce1dd81c35778a6ffffe9 Mon Sep 17 00:00:00 2001 From: Zhengda Lu Date: Tue, 16 Jul 2024 14:57:51 -0400 Subject: [PATCH 68/68] [mongo] collect additional wiredtiger cache metrics (#18052) * collect additional wiredtiger cache metrics * add changelog --- mongo/changelog.d/18052.added | 4 ++++ mongo/datadog_checks/mongo/metrics.py | 3 +++ mongo/metadata.csv | 3 +++ mongo/tests/fixtures/serverStatus | 1 + mongo/tests/results/metrics-serverStatus.json | 24 +++++++++++++++++++ 5 files changed, 35 insertions(+) create mode 100644 mongo/changelog.d/18052.added diff --git a/mongo/changelog.d/18052.added b/mongo/changelog.d/18052.added new file mode 100644 index 0000000000000..3131dac24ecab --- /dev/null +++ b/mongo/changelog.d/18052.added @@ -0,0 +1,4 @@ +Collects 3 additional WiredTiger cache metrics from serverStatus +- wiredtiger.cache.bytes_read_into_cache +- wiredtiger.cache.bytes_written_from_cache +- wiredtiger.cache.pages_requested_from_cache diff --git a/mongo/datadog_checks/mongo/metrics.py b/mongo/datadog_checks/mongo/metrics.py index 76138e837f1ce..5b3f24b81cd71 100644 --- a/mongo/datadog_checks/mongo/metrics.py +++ b/mongo/datadog_checks/mongo/metrics.py @@ -260,6 +260,8 @@ """ WIREDTIGER_METRICS = { "wiredTiger.cache.bytes currently in the cache": (GAUGE, "wiredTiger.cache.bytes_currently_in_cache"), + "wiredTiger.cache.bytes read into cache": GAUGE, + "wiredTiger.cache.bytes written from cache": GAUGE, "wiredTiger.cache.failed eviction of pages that exceeded the in-memory maximum": ( RATE, "wiredTiger.cache.failed_eviction_of_pages_exceeding_the_in-memory_maximum", @@ -270,6 +272,7 @@ "wiredTiger.cache.modified pages evicted": GAUGE, "wiredTiger.cache.pages read into cache": GAUGE, "wiredTiger.cache.pages written from cache": GAUGE, + "wiredTiger.cache.pages requested from the cache": (GAUGE, "wiredTiger.cache.pages_requested_from_cache"), "wiredTiger.cache.pages currently held in the cache": (GAUGE, "wiredTiger.cache.pages_currently_held_in_cache"), "wiredTiger.cache.pages evicted because they exceeded the in-memory maximum": ( RATE, diff --git a/mongo/metadata.csv b/mongo/metadata.csv index 68d3612e29444..d771d56129521 100644 --- a/mongo/metadata.csv +++ b/mongo/metadata.csv @@ -253,6 +253,8 @@ mongodb.usage.writelock.count,gauge,,lock,,Number of write locks since server st mongodb.usage.writelock.countps,gauge,,lock,second,Number of write locks per second,0,mongodb,,, mongodb.usage.writelock.time,gauge,,microsecond,,Total time spent performing write locks in microseconds,-1,mongodb,,, mongodb.wiredtiger.cache.bytes_currently_in_cache,gauge,,byte,,Size of the data currently in cache.,0,mongodb,bytes currently in the cache,, +mongodb.wiredtiger.cache.bytes_read_into_cache,gauge,,byte,,Number of bytes read into the cache.,-1,mongodb,bytes read into cache,, +mongodb.wiredtiger.cache.bytes_written_from_cache,gauge,,byte,,Number of bytes written from the cache.,-1,mongodb,bytes written from cache,, mongodb.wiredtiger.cache.failed_eviction_of_pages_exceeding_the_in_memory_maximumps,gauge,,page,second,"Number of failed eviction of pages that exceeded the in-memory maximum, per second.",-1,mongodb,cache failed eviction of pages exceeding in-memory maximum ps,, mongodb.wiredtiger.cache.in_memory_page_splits,gauge,,split,,In-memory page splits.,0,mongodb,cache in-memory page splits.,, mongodb.wiredtiger.cache.maximum_bytes_configured,gauge,,byte,,Maximum cache size.,0,mongodb,cache maximum bytes configured,, @@ -262,6 +264,7 @@ mongodb.wiredtiger.cache.pages_currently_held_in_cache,gauge,,page,,Number of pa mongodb.wiredtiger.cache.pages_evicted_by_application_threadsps,gauge,,page,second,Number of page evicted by application threads per second.,-1,mongodb,pages evicted by application threads ps,, mongodb.wiredtiger.cache.pages_evicted_exceeding_the_in_memory_maximumps,gauge,,page,second,"Number of pages evicted because they exceeded the cache in-memory maximum, per second.",-1,mongodb,pages evicted exceeding in-memory maximum ps,, mongodb.wiredtiger.cache.pages_read_into_cache,gauge,,page,,Number of pages read into the cache.,-1,mongodb,pages read cache,, +mongodb.wiredtiger.cache.pages_requested_from_cache,gauge,,page,,Number of pages requested from the cache.,-1,mongodb,pages requested from cache,, mongodb.wiredtiger.cache.pages_written_from_cache,gauge,,page,,Number of pages writtent from the cache,-1,mongodb,pages written cache,, mongodb.wiredtiger.cache.tracked_dirty_bytes_in_cache,gauge,,byte,,Size of the dirty data in the cache.,0,mongodb,tracked dirty bytes in cache,, mongodb.wiredtiger.cache.unmodified_pages_evicted,gauge,,page,,"Number of pages, that were not modified, evicted from the cache.",0,mongodb,cache unmodified pages evicted,, diff --git a/mongo/tests/fixtures/serverStatus b/mongo/tests/fixtures/serverStatus index 60e0c6910f49a..cee6b166e337f 100644 --- a/mongo/tests/fixtures/serverStatus +++ b/mongo/tests/fixtures/serverStatus @@ -1068,6 +1068,7 @@ "pages currently held in the cache": 12, "pages read into cache": 12, "pages read into cache requiring lookaside entries": 12, + "pages requested from the cache": 12, "pages written from cache": 12, "page written requiring lookaside records": 12, "pages written requiring in-memory restoration": 12 diff --git a/mongo/tests/results/metrics-serverStatus.json b/mongo/tests/results/metrics-serverStatus.json index d002816ea151d..a78370718a2d0 100644 --- a/mongo/tests/results/metrics-serverStatus.json +++ b/mongo/tests/results/metrics-serverStatus.json @@ -1215,6 +1215,22 @@ "server:mongodb://testUser2:*****@localhost:27017/test" ] }, + { + "name": "mongodb.wiredtiger.cache.bytes_read_into_cache", + "type": 0, + "value": 12.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test" + ] + }, + { + "name": "mongodb.wiredtiger.cache.bytes_written_from_cache", + "type": 0, + "value": 12.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test" + ] + }, { "name": "mongodb.wiredtiger.cache.failed_eviction_of_pages_exceeding_the_in_memory_maximumps", "type": 1, @@ -1263,6 +1279,14 @@ "server:mongodb://testUser2:*****@localhost:27017/test" ] }, + { + "name": "mongodb.wiredtiger.cache.pages_requested_from_cache", + "type": 0, + "value": 12.0, + "tags": [ + "server:mongodb://testUser2:*****@localhost:27017/test" + ] + }, { "name": "mongodb.wiredtiger.cache.pages_written_from_cache", "type": 0,